Java 併發程式設計實戰 第一部分小結

2021-08-20 04:16:06 字數 625 閱讀 8869

下列"併發技巧清單" 列舉了第一部分介紹的概念和規則

* 可變狀態是直觀重要的(it's mutable state, stupid)

所有的併發問題都可以歸結為如何協調對併發狀態的訪問,可變狀態越少,就越容易確保執行緒的安全性。

* 盡量將域宣告為final型別,除非需要他們是可變的

* 不可變物件一定是執行緒安全的

不可變物件極大地降低併發程式設計的複雜性,他們更為簡單而且安全,可以任意共享而無需使用枷鎖或保護性機制

* 封裝有助於管理複雜性

在編寫現車功能安全的程式時,雖然可以將所有的資料都儲存在全域性變數中,但為什麼要這樣做?將資料封裝在物件中,更易於維持不變性條件;將同步機制封裝在物件當中,更加易於遵循同步策略

* 用鎖來保護每乙個可變變數

* 當保護同乙個不變性條件中的所有變數時, 要使用用乙個鎖

* 在執行符合操作期間,要持有鎖

* 如果從多個執行緒中訪問同乙個可變變數時沒有同步機制,那麼程式會出現問題,

* 不要做故作聰明的推斷出不需要使用同步。

* 在設計過程中,考慮執行緒安全,或者在文件中明確的指出它不是執行緒安全的。

* 將同步策略文件化。

注:文件提到了多種同步方案,並解釋了為什麼有的行不通,以後補充上

Axure RP 第一部分

axure rp是乙個專業的快速原型設計工具。axure 發音 ack sure 代表美國axure公司 rp則是rapid prototyping 快速原型 的縮寫。axure rp是美國axure software solution公司旗艦產品,是乙個專業的快速原型設計工具,讓負責定義需求和規格...

Go 高階併發模式 第一部分

寫 難,寫處理並行和併發的 更難!要做到這一切並保持高效將是極具挑戰性的。今天,我決定開始分享一些技巧來處理某些特殊情況。有時,你想要為你的 channel 操作定時 持續嘗試做一些事情,如果不能在一段時間內完成就放棄繼續嘗試。要做到這一點,你可以使用 context 或者 time,兩者都很好。c...

第一部分 初識Solr

第一章 solr簡介 這章主要包括內容 這本書講述nosql技術,apache solr 像它的非關係模式兄弟一樣,針對於某些問題進行了優化。特別的,solr在處理企業級大量資料 及時搜尋 文字資料 返回相關性結果等方面進行了很大優化。這裡說的只是冰山一角,讓我們從下面幾方面來進行詳細敘說 solr...