Java併發程式設計實戰筆記 1 執行緒安全簡介

2021-08-10 02:24:53 字數 617 閱讀 5391

資源利用率

程式在等待操作執行完成的空檔,執行另乙個程式 提高資源利用率。

公平性使用者對於計算機的使用權,通過粗粒度的時間分片 使得使用者和程式共享資源程式。

便利、效率性

乙個任務分解多個子任務,必要時通訊共同完成任務。

非同步事件的簡單處理

對於單執行緒而言,如果要高效處理多個操作,必須使用非阻塞io,複雜且易錯,如果能夠為每個請求分配執行緒將降低開發的難度

執行緒允許在同乙個程序中同時存在多個程式控制流,執行緒會共享程序中的資源;每個執行緒有各自的 程式計數器、棧、區域性變數。同乙個程序中的多個執行緒也可以被同時排程到多個cpu上執行。

安全性對共享的可變的變數進行無法**順序的操作,將會造成與預期不一致的結果。

活躍性某個操作無法繼續進行下去:a執行緒占有資源長時間不釋放,導致b執行緒無法繼續操作

額外的效能開銷:核心在於: 避免多執行緒同時訪問可變狀態

通過縮小同步**塊的範圍,可以在效能和同步間找到平衡

一種常見的加鎖約定:通過將狀態封裝在物件內,通過同乙個物件鎖,對狀態的讀寫訪問都新增鎖來確保安全

用同步來協調對乙個變數的訪問

當首席執行官時間計算和無法快速完成的操作,時,一定不要持有鎖或者要設定定時鎖(redisson)

Java併發程式設計實戰筆記(4) 執行緒實現方式

通常我們比較清楚的也比較常見的執行緒實現方式都是一下兩種 這兩個都有乙個缺點就是在執行完之後無法獲取執行結果,如果非要獲取執行結果,只有通過共享變數或者使用執行緒通訊的方式,但是這樣的話是比較麻煩的。jdk1.5之後,就提供了callable和future,通過他們可以在任務執行完成之後獲取執行結果...

Java併發 JAVA併發程式設計實戰 讀書筆記3

發布乙個物件的意思是使它能夠被當前範圍之外的 所使用。比如將乙個引用儲存到其他 可以訪問的地方,在乙個非私有的方法中返回這個引用。在很多情況下,我們需要確保物件及它們的內部狀態不被暴露。乙個物件在尚未準備好時就將它發布,稱作逸出。最常見的發布物件的方式就是將物件的引用儲存到公共靜態域中,任何類和執行...

Java併發 JAVA併發程式設計實戰 讀書筆記8

為計算結果建立高效 可伸縮的快取記憶體 public inte ce computable public class expensivefunction implements computable public class memoizer1implements computable public ...