第一部分小結
1,可變狀態至關重要。所有的併發問題都可以歸結為如何協調對併發狀態的訪問,可變狀態越少就越容易確保執行緒安全性。無狀態物件永遠是執行緒安全的。
2,盡量將域申明為final型別,除非需要他們是可變的。
3,不可變物件一定是執行緒安全的。不可變物件能極大地降低併發程式設計的複雜性,他們更為簡單而且安全,可以任意共享而且無需使用加鎖或保護複製等機制。
4,封裝有助於管理複雜性,將資料封裝在物件中,更加易於維持不變性條件,將同步機制封裝在物件中,更易於遵循同步策略。
5,用鎖來保護每個可變變數。
6,當保護同乙個不變性條件中的多有變數時,要是用同乙個鎖。
7,在執行復合操作期間,要持有鎖。
8,如果從多個執行緒中訪問同乙個可變變數時如果沒有同步機制,將會出現問題。
9,在設計過程中考慮執行緒安全,或者在文件中明確指出它不是執行緒安全的。
10,將同步策略文件化。
併發程式設計基礎知識
一 程序的定義 狹義定義 程序是正在執行的程式的例項 an instance of a computer program that is being executed 廣義定義 程序是乙個具有一定獨立功能的程式關於某個資料集合的一次執行活動。它是作業系統動態執行的基本單元。在傳統的作業系統中,程序即...
《java 併發程式設計實戰》基礎構建筆記
5.1.1 同步容器類的問題,在多執行緒的情況下,如,a 執行緒 對vector 執行 get 操作,另外乙個執行緒對vector 進行delete 操作,由於執行緒交替執行,可能有乙個執行緒獲取下標 為9 但是另外乙個執行緒已經刪除了下標為9的資料,導致陣列下標越界,所以對同步容器進行復合操作,在...
Jupyter Notebook基礎知識總結
一 各個選項解釋 在notebook頁面開啟時,頁面的右上角有乙個news選項 裡面有四個選項 text file 文字檔案 類似於乙個文字編輯器 folder 資料夾 terminal 終端 開啟python3會來到如下介面 第一行的選項分別為 file 檔案 edit 編輯 view inser...