线程的六种状态
今天来说说线程的六种状态:
1.NEW状态:当我们new一个线程出来,还没有调用start()方法时。
2.Runnable状态:线程对象调用start()方法时,它会被线程调度器来执行,这个状态叫做Runnabla,它内部有两个状态,Ready状态:在CPU等待队列里排队,Running状态:在CPU上运行。(当调用Yiled的时候会从Running状态跑到Ready状态上去,线程被调度器选中的时候又从Ready状态跑到Running上去)。
3.Teminated状态:线程正常结束的状态。
4.Blocked状态:同步代码块的情况下没得到锁就是阻塞状态。
5.Waiting状态:在运行时调用了o.wait() t.join() LockSupport.park()就会进入等待状态,在调用o.notify() o.notifyAll() LockSupport.unpark()就又回到Running状态。
6.TimedWaiting: 按照时间等待,调用Thread.sleep(time) o.wait(time) t.join(time) LockSupport.parkNanos() LockSupport.parkUntil()。