執行緒
實現多執行緒的兩種方法
繼承thread類,重新run方法
thread a=new mythread(「子執行緒」);
thread.start();
實現runnable介面,實現run方法。
myrunnable my=new myrunable(); 在這個myrunnable類中已經重寫了run方法
thread thread =new thread(myrunnable,"子執行緒2");
thread thread =new thread(myrunnable,"子執行緒3");
thread.start();
執行緒的生命週期
------指執行緒從建立到啟動,直至執行結束
------可以通過呼叫thread類的相關方法影響執行緒的執行狀態
執行緒的執行狀態
-----新建(new)
----可執行(runnable)
其他執行緒呼叫了處於新建狀態執行緒的start方法,該執行緒物件將裝換到『可執行狀態';
-----執行(runnxing)
1處於『可執行狀態』的執行緒物件一旦獲得了cpu控制權,就會裝換到『執行狀態』
2在『執行狀態』下,執行緒狀態占用cpu時間片段,執行run方法的**
3處於'執行狀態'下的執行緒可以呼叫yield方法,該方法用於自動出讓cpu控制權。
執行緒物件出讓控制權後回到『可執行狀態』,重新等待排程。
兩者區別
1.runnable介面必須實現run方法,而thread類中的run方法是乙個空方法,可以不重寫。
2、runnable介面的實現類並不是真正的執行緒類,只是執行緒執行的目標類。要想以執行緒的方法方式執行run方法,必須依靠
thread類
3、runnable介面適合於資源的共享
-----阻塞(blocking)
----死亡(dead)
阻塞狀態(blocking)
---執行緒在『執行狀態』下由於受某種條件的影響被迫出讓cpu控制權,進入阻塞狀太
進入阻塞狀態的三種情況
--呼叫sleep方法
--呼叫jion方法
處於「執行狀態」的執行緒如果呼叫了其他執行緒的jion方法,將被掛起進入「阻塞狀態」
等目標狀態執行完後才會解除阻塞,回到「可執行狀態」
--執行i/o操作
執行緒同步:
1.解決執行緒併發安全問題。
2.用synchronized來解決執行緒同步
3.synchronized可以修飾方法和**塊
3.1 修飾的方法,稱為同步方法
3.2修飾的**塊,稱為同步塊
3.3如何在乙個執行緒類中有多個方法,那麼只會鎖在synchronize修飾的方法,其他方法則可以正常訪問。
只能乙個個訪問,等乙個執行緒完成後另乙個在等待狀態。
wait()方法:
中斷方法的執行,使本執行緒等待,暫時讓出cpu的使用權
notify()方法:
喚醒由於使用這個同步方法而處於等待執行緒的某乙個結束等待
notifyall()方法:
喚醒所有由於使用這個同步方法而處於等待的執行緒結束等待
java基礎複習 多執行緒
第一節 兩種建立方法 1繼承thread類,並複寫run方法 2實現runnable介面,並複寫run方法 3兩種方式的特點和優缺點,以及應用。賣票程式中,使用1方法建立的執行緒,每建立乙個執行緒,都有100張票。而我們想要的多個執行緒共同操作這100張票,這時就要使用第二種方法。第二節 執行緒的執...
JAVA多執行緒基礎知識複習一
一.執行緒的基礎知識 1.什麼是程序 它是執行中的程式 2.什麼是執行緒 又稱輕量級程序,是程式的最小單元 3.建立執行緒的兩種方法 1 繼承thread類 public class demo1 class mythread extends thread 2 實現runable介面 public c...
java基礎複習(4)
極限程式設計 測試先行,結對程式設計 要求兩個人水平相當。能夠提高效率,不易出錯,而且程式設計者無法偷懶哈 看過程式設計師上面的一篇文章,極限程式設計具有良好的實踐性比如 測試驅動開發,持續整合,使用者故事。測試驅動保證了開發人員的編碼質量。持續整合保證了每天完成的任務都能夠成功整合到系統中,保持專...