目錄
并發筆記一:什麼是線程不安全?
并發筆記二:線程中斷機制
并發筆記三:線程的生命周期
并發筆記四:鎖機制(一)
并發筆記四:鎖機制(二)
線程的生命周期中有5中狀态:new、runnable、running、blocked、dead。
- 建立(new):即
此時線程未啟動,但占用記憶體空間。Thread t = new Thread();
- 就緒(runnable):即
線程已被啟動,等待被配置設定給CPU時間片,此時線程是等待階段,不一定會被立即執行。t.start();
- 運作中(running):線程獲得CPU資源正在執行任務,除非線程自動放棄CPU資源或有優先級更高的線程進入,線程将一直運作到結束。
-
阻塞(blocked):某種原因讓線程讓出CPU資源并暫停自己的執行。
·正在睡眠:即
t.sleep(3000)
,指定時間過去後即可進入就緒狀态。
·正在等待:即
t.wait();
,可調用notify()方法回到就緒狀态。
·被另一個線程阻塞:即
調用resume()方法可恢複。t.suspend();
-
死亡(dead):線程執行完畢或被其它線程殺死,就會進入死亡狀态,線程死亡後無法再進入就緒狀态。
·自然中止:正常運作run()方法後。
·異常中止:調用stop()方法後讓一個線程中止。
以上所有狀态,除了new 和 dead 狀态不是活的(not alive),其他狀态都是活得(alive)