java併發程式設計實踐

2021-08-31 17:40:42 字數 448 閱讀 6391

chapter 2   執行緒安全

常見的競爭條件包括檢查在執行,讀-改-寫.典型的檢查再執行操作為延遲初始化(if *** is null then...).典型的讀-改-寫操作為自增運算(x++).

動態同步方法鎖住當前物件本身,靜態同步方法鎖住class物件

chapter 2   可見性

讀讀不需要同步,讀寫,寫寫需要.

當在沒有同步的條件下讀取數值可能得到乙個過期的數值,但這個數值至少是真實的,不是憑空而來的.這樣的安全保證成為最低限的安全性.

非volatile的64位數值沒有最低限的安全性,因為jvm允許將64位的讀寫劃分為2個32位的操作,這是的併發讀取很有可能得到乙個高32位和另乙個低32位配湊起來的值.

java併發程式設計實踐 ThreadLocal

threadlocal 的功能,能夠為各個訪問的執行緒copy出初始化後的資源副本,因此各個訪問資源的執行緒在改變資源狀態的時候,只是改變分配給該執行緒副本的狀態,因此各個執行緒之間沒有干擾,可以按照各自設定的序列執行。對比 如下 uniqueint與itest分別為兩個integer型別的資料。u...

Java併發程式設計實踐(2)

1 同步容器類 hashmap和hashtable的區別 hashmap底層繼承abstractmap抽象類,並實現map介面,hashtable底層繼承dictionary類並實現map介面 hashmap初始話大小為16而hashtable初始化大小為11,hashmap是非執行緒安全的而has...

java併發程式設計實踐學習

1.futuretask有個簡單理解,但是例子不是非常懂,get 是返回結果,沒有結果的話阻塞,為什麼能處理耗時的計算操作呢?2.copyonwritearraylist究竟在什麼時候複製啊?2013 2 20 p294 清單14.3是什麼意思,先驗條件在 用到了 2013 2 21 p294 29...