线程的6个状态
New
线程刚创建的状态;
Runnable
调用start()后的状态,可以对应操作系统的ready running状态;
Blocked
进入到synchronized修饰的代码块或方法并已经被其他线程获得monitor锁;
注意:一定是遇到synchronized才会出现,其他的锁虽然也会是线程陷入等待,但是不会使线程从Runnable进入到Blocked状态;
当获得了monitor锁就会回到Runnable状态;
Waiting
使线程从Runnable进入到Waiting等待的方法
Object.wait()
Thread.join()
LockSupport.park()
唤醒正在等待线程的方法,是线程从Waiting到Runnable
Object.notify()
Object.notifyAll()
LockSupport.unpark()
Timed Waiting
使线程从Runnable进入到Timed