讀java多執行緒程式設計核心技術總結
阿新 • • 發佈:2018-12-25
第一章 java 多執行緒技能
程序是作業系統的結構基礎;是一次程式的執行。執行緒可以看成程序的一個子任務。執行緒可以通過繼承Thread類或者實現runnable介面來實現。介面的實現優於繼承。
停止執行緒可以通過拋異常,return;或者暴力手段stop();stop停止執行緒過於暴力,容易造成資料缺失,所以不建議
暫停執行緒suspend()和resume方法的使用
執行緒安全
通過synchronized同步方法實現通過synchronize(監視器物件){}同步快來實現同步髒讀:執行緒在讀取例項變數的時候,此值已經被其他執行緒更改了
當同步快出現異常時,鎖自動釋放
同步塊可以有效的縮減同步的範圍,縮短執行時間提高效率。
靜態同步方法鎖定的是Class類。靜態同步方法對所有執行該方法是執行緒都是同步的
死鎖的原因是
互斥條件。即某個資源在一段時間內只能由一個程序佔有
不可搶佔條件。程序所獲得的資源在未使用完畢之前,資源申請者不能強行地從資源佔有者手中奪取資源
佔有且申請條件。程序至少已經佔有一個資源,但又申請新的資源;由於該資源已被另外程序佔有,此時該程序阻塞
迴圈等待條件。存在一個程序等待序列{P1,P2,...,Pn},其中P1等待P2所佔有的某一資源,P2等待P3所佔有的某一資源,以此類推
只要監視器物件沒有改變,監視器物件的屬性改變了,執行的結果還是同步的