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...