java多執行緒 執行緒的生命週期及常用操作

2021-08-20 09:47:59 字數 835 閱讀 3443

這篇文章是關於多執行緒的一些基礎知識的學習總結,以備學習和參考,如有錯誤及不當之處還希望大家批評指正、相互學習。

1. 新建(new thread)

當建立thread類的乙個例項(物件)時,此執行緒進入新建狀態(未被啟動)。

例如:thread t=new thread();

就緒(runnable)

執行緒已經被啟動,正在等待被分配給cpu時間片,也就是說此時執行緒正在就緒佇列中排隊等候得到cpu資源。例如:t.start()。

注意t.strat()方法和t.run()方法都可以執行執行緒中的操作,不同的是strat方法開啟新的執行緒執行操作,而run方法在本執行緒執行操作不開啟新的執行緒。

執行(running)

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

死亡(dead)

當執行緒執行完畢或被其它執行緒殺死,執行緒就進入死亡狀態,這時執行緒不可能再進入就緒狀態等待執行。

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

堵塞(blocked)

由於某種原因導致正在執行的執行緒讓出cpu並暫停自己的執行,即進入堵塞狀態。

正在睡眠:用sleep(long t) 方法可使執行緒進入睡眠方式。乙個睡眠著的執行緒在指定的時間過去可進入就緒狀態。

正在等待:呼叫wait()方法。(呼叫motify()方法回到就緒狀態)

被另乙個執行緒所阻塞:呼叫suspend()方法。(呼叫resume()方法恢復)

java多執行緒 執行緒生命週期

本節目標 了解執行緒的宣告週期 了解執行緒的停止操作 乙個新的執行緒建立之後,通過start 方法進入執行狀態,在執行狀態時可以使用yield 進行執行緒禮讓,但是仍然可以執行,使用wait 方法暫停乙個執行緒。suspend resume stop 都會產生死鎖問題,不建議使用。如果想讓執行緒停止...

java多執行緒 執行緒狀態及生命週期

1.新建狀態 new 新建立了乙個執行緒物件。2.就緒狀態 runnable 執行緒物件建立後,其他執行緒呼叫了該物件的start 方法。該狀態的執行緒位於可執行執行緒池中,變得可執行,等待獲取cpu的使用權。3.執行狀態 running 就緒狀態的執行緒獲取了cpu的使用權,執行程式 4.阻塞狀態...

java 多執行緒 執行緒的生命週期

執行緒的生命週期主要分為下面5個狀態 當建立thread類的乙個例項 物件 繼承thread類,實現runnable介面,呼叫callable介面,此執行緒進入新建狀態 未被啟動 執行緒已被啟動,執行緒物件建立好之後進入就緒狀態,此時會等待獲取cpu的執行權 獲取到cpu執行權之後,執行緒物件開始執...