java线程的状态转换

java线程的状态转换

1 Runnable表示线程就绪,即可以执行,但仍未获得cpu。

进入runnable的方式有:

1)A.sleep(20),20毫秒后,A进入runnable,

2)A.join(B),则A即时进入blocked拥塞,并且等待B结束running执行状态后,A自动进入runnable就绪

3)A.read("c:\\text.txt"),则当文档读完后,A对应的IO线程进入runnable状态。

4)A中的某个方法method1()中有Thread.yield(),则调用method1()时,会使A的当前对象结束running而进入runnable

5)synchronized同步锁被释放。这个~~

6) new Thread(实现runable).或者new Thread的子类,可以新建线程A。A.start后,A线程进入runnable状态

2 Blocked表示拥塞

1)调用对象的wait join sleep方法会使该对象进入Blocked synchronized会使;

2)Blocked中的(等待Blocked)的对象可以被notify/notifyAll/interrupt。从而进入(锁定 Blocked)

3 dead状态

  只能在running状态下等待run()方法正常结束,或者异常退出,线程才能进入dead状态。

--------------------

4坦白的讲,synchronized锁定我仍没看懂。在加油呢,留言鼓励下我吧~