天天看點

并發筆記三:線程的生命周期

目錄

并發筆記一:什麼是線程不安全?

并發筆記二:線程中斷機制

并發筆記三:線程的生命周期

并發筆記四:鎖機制(一)

并發筆記四:鎖機制(二)

線程的生命周期中有5中狀态:new、runnable、running、blocked、dead。

并發筆記三:線程的生命周期
  1. 建立(new):即

    Thread t = new Thread();

    此時線程未啟動,但占用記憶體空間。
  2. 就緒(runnable):即

    t.start();

    線程已被啟動,等待被配置設定給CPU時間片,此時線程是等待階段,不一定會被立即執行。
  3. 運作中(running):線程獲得CPU資源正在執行任務,除非線程自動放棄CPU資源或有優先級更高的線程進入,線程将一直運作到結束。
  4. 阻塞(blocked):某種原因讓線程讓出CPU資源并暫停自己的執行。

    ·正在睡眠:即

    t.sleep(3000)

    ,指定時間過去後即可進入就緒狀态。

    ·正在等待:即

    t.wait();

    ,可調用notify()方法回到就緒狀态。

    ·被另一個線程阻塞:即

    t.suspend();

    調用resume()方法可恢複。
  5. 死亡(dead):線程執行完畢或被其它線程殺死,就會進入死亡狀态,線程死亡後無法再進入就緒狀态。

    ·自然中止:正常運作run()方法後。

    ·異常中止:調用stop()方法後讓一個線程中止。

以上所有狀态,除了new 和 dead 狀态不是活的(not alive),其他狀态都是活得(alive)

繼續閱讀