Java 執行緒(一)

2021-07-25 21:47:57 字數 929 閱讀 1878

1. 使用thread類建立執行緒,必須重寫run()方法,使用start()方法來啟動執行緒。

2. 使用執行緒介面建立新的執行緒使用介面runnable,介面實現方式如:

class newthread implements runnable
3. 執行緒所處狀態

(1)新建狀態(new)

建立乙個新的執行緒,並沒有使用start()方法啟動,此執行緒處於新建狀態。

(2)就緒狀態(runnable)

就緒狀態的執行緒已經具備了執行的條件,但是由於沒有獲得時間片,因此進入執行緒佇列等待。

(3)執行狀態(running)

a.執行緒完成程式執行後或者程式停止執行後,執行緒進入終止階段

b.執行緒使用yield()方法,當前執行緒進入就緒狀態。

c.執行緒使用sleep(), join(), wait()或者使用synchronized請求物件鎖未獲得通過,進入阻塞狀態

(4)阻塞狀態(blocked)

a.呼叫sleep(),執行緒進入阻塞狀態,當休眠時間到,即進入就緒狀態。

b.主線程呼叫thread1.join(),主線程即進入阻塞狀態,當thread1執行完畢或者等待時間到,主線程即進入就緒狀態

c.執行緒呼叫wait()方法,執行緒即進入等待阻塞狀態,可用notify(), notifyall()或者被中斷或者等待時間到,執行緒即進入物件鎖阻塞就緒狀態

d.使用同步關鍵字synchronized請求物件鎖,未通過,進入物件鎖阻塞狀態,當獲得物件鎖時進入就緒狀態。

(5)終止狀態(dead)

a.執行緒執行完畢,進入終止狀態

b.呼叫stop()或者destory(),強制終止執行緒。

4.設定守護執行緒

乙個執行緒結束時,其守護執行緒即使有語句要執行,也必須立即停止。

設定方式是setdaemon(true)。

java執行緒(一)

編寫乙個執行緒有兩種方法,一種是實現runnable介面,另一種方法是繼承thread類。下面是實現runnable介面的方法 public class testthread class runner implements runnable 下面是繼承thread類的方法 public class ...

Java多執行緒 同步(一)

可能我們在開發專案進行過程中,通常會冒出這樣的困惑 應該選擇效率,還是選擇質量?會不會有偷懶的思維,覺得把一些摸不清頭緒,不知道怎麼寫的 片段去掉,可以節省許多時間,更早的完成專案計畫,其實以前我也是這麼想的,但最近我開始意識到,這個問題的糾結之處不在於選擇困難,而在於問題本身是個偽命題。什麼是 質...

java多執行緒問題一

區別 在乙個多執行緒用於程式中建立乙個執行緒集合,需要執行新任務時進行執行緒復用,不需要大量的建立銷毀過程,節省資源和時間。原始碼public threadpoolexecutor int corepoolsize,int maximumpoolsize,long keepalivetime,tim...