java——多线程

一个进程至少有一线线程,jvm启动时候会有一个进程,java.exe,还有一个垃圾回收机制的线程。

两种方式

  • extends thread
  • implement Runnable

线程的集中状态

  1. 新建 new
  2. 就绪 start
  3. 运行 线程对象获得cpu资源
  4. 冻结 因为某些原因 比如 wait sleep,释放了执行资格和执行权,
  5. 死亡 run方法结束,或者stop,在内存中编程垃圾

synchronized

  • 三种用法
    • 对象锁:synchronnized修饰类普通方法时,当前加锁的级别就是实例对象,

    • 类锁

    • 同步代码块

三个方法都需要在synchronized 语句中使用

  • wait 注意与sleep()方法区别,sleep是Thread静态方法,wait()是object的非静态方法。调用wait方法后
    当前线程就回在这个对象上等待,直到其他线程调用这个对象的notify方法或notifyAll方法
  • notify
  • notifyall

你可能感兴趣的:(java学习)