201711671212 《java程式設計》第十一週學習總結
阿新 • • 發佈:2018-12-16
教材學習內容總結
本週學習內容:第十二章 :Java多執行緒機制
- 現代作業系統可以讓計算機系統中的多個程序輪流使用CPU資源,甚至可以讓多個程序共享作業系統所管理的資源。
- 執行緒不是程序,是比程序更小的執行單位,且行為與程序很像;沒有程序就不會有執行緒。
- Java語言支援多執行緒。
- 計算機在任何給定的時刻只能執行所有執行緒中的一個;Java虛擬機器能夠快速地把控制從一個執行緒切換到另一個執行緒。
- Java總是從主類的main方法開始執行,執行完main方法後JVM會等其他所有執行緒都結束之後,才結束Java程式。
- 執行緒有4種狀態:新建、執行、中斷、死亡。
- 引起執行緒中斷的原因:
(1)JVM將CPU資源從當前執行緒切換給其他執行緒,使本執行緒讓出CPU使用權處於中斷狀態。
(2)執行緒使用CPU資源期間,執行了sleep(int millsecond)方法,是當前執行緒進入休眠狀態。
(3)執行緒使用CPU資源期間,執行了wait()方法,是當前執行緒進入等待狀態。
(4)執行緒使用CPU資源期間,執行某個操作進入阻塞狀態。
- 程式要在Thread類的子類中重寫run()方法來覆蓋父類的run()方法,並且規定執行緒的具體操作;線上程沒有結束run()方法之前,不要讓執行緒再呼叫start()方法。
- JVM的執行緒排程器會使高優先順序的執行緒能始終執行。但是在實際程式設計中不提倡使用執行緒的優先順序來保證演算法的正確執行。
- 使用Thread類建立執行緒物件:Thread(Runnable target)。
- 目標物件與執行緒的關係:完全解耦:目標物件通過獲得執行緒的名字來確定是哪個執行緒正在佔用CPU資源;弱耦合:組合執行緒,將目標物件作為自己的成員,可以獲得執行緒物件的引用。
- 執行緒同步:若干個執行緒都需要使用一個synchronized(同步)修飾的方法,多個執行緒呼叫該synchronized方法必須遵守同步機制。
- 協調同步的執行緒:wait()、notify()、notifyAll()都是類中的final方法,被所有的類繼承且不允許重寫的方法。
- 不可以在非同步方法中使用wait()、notify()、notifyAll()。
- 執行緒聯合、GUO執行緒、計時器執行緒、守護執行緒。
參考資料
-
Java 2 實用教程(第5版)