併發筆記三 執行緒的生命週期

2021-10-09 11:39:03 字數 873 閱讀 2537

併發筆記一:什麼是執行緒不安全?

併發筆記二:執行緒中斷機制

併發筆記三:執行緒的生命週期

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

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

執行緒的生命週期中有5中狀態:new、runnable、running、blocked、dead。

新建(new):即thread t = new thread();此時執行緒未啟動,但占用記憶體空間。

就緒(runnable):即t.start();執行緒已被啟動,等待被分配給cpu時間片,此時執行緒是等待階段,不一定會被立即執行。

執行中(running):執行緒獲得cpu資源正在執行任務,除非執行緒自動放棄cpu資源或有優先順序更高的執行緒進入,執行緒將一直執行到結束。

阻塞(blocked):某種原因讓執行緒讓出cpu資源並暫停自己的執行。

·正在睡眠:即t.sleep(3000),指定時間過去後即可進入就緒狀態。

·正在等待:即t.wait();,可呼叫notify()方法回到就緒狀態。

·被另乙個執行緒阻塞:即t.suspend();呼叫resume()方法可恢復。

死亡(dead):執行緒執行完畢或被其它執行緒殺死,就會進入死亡狀態,執行緒死亡後無法再進入就緒狀態。

·自然中止:正常執行run()方法後。

·異常中止:呼叫stop()方法後讓乙個執行緒中止。

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

Java 多執行緒(三) 執行緒的生命週期及優先順序

執行緒的生命週期 乙個執行緒從建立到消亡的過程。如下圖,表示執行緒生命週期中的各個狀態 執行緒的生命週期可以分為四個狀態 1.建立狀態 當用new操作符建立乙個新的執行緒物件時,該執行緒處於建立狀態。處於建立狀態的執行緒只是乙個空的執行緒物件,系統不為它分配資源。2.可執行狀態 執行執行緒的star...

執行緒的生命週期

1.新建 threadd thread new thread runnable 2.就緒 thread.start 將執行緒放入就緒等待佇列中,等待cpu時間片的分配 3.執行 獲取到cpu時間片,一直執行到結束,除非有優先順序更高執行緒進入或者自動放棄cpu資源 4.死亡 正常結束或被其他執行緒殺...

執行緒的生命週期

如上圖 new乙個thread,則執行緒處於新建狀態。呼叫start 則處於就緒狀態,至於什麼時候執行,屬於系統排程的事情了,當run 或者call 執行體執行完成後,處於死亡狀態。執行狀態的執行緒,可能遇到以下情況而被阻塞 sleep 方法 io阻塞 等待同步鎖 等待通知 suspend 呼叫yi...