AtomicIntegerFieldUpdate簡介

java中AtomicIntegerFieldUpdate類可以實現原子方式更新一個變量

對於這個變量有如下的約束:

  1. 更新器更新的必須是int類型,不能是其包裝類型Integer;
  2. 更新器更新的必須是volatile修飾的變量,確保線程之間共享變量的時候立即可見;
  3. 變量不能被static修飾,必須是實例變量。因爲Unsafe.objectFieldOffset()方法不支持靜態變量(CAS操作本質上是通過對象實例的偏移量來直接進行賦值);
  4. 更新器只能修改它可見範圍內的變量,因爲更新器是通過反射來得到這個變量,如果變量不可見就會報錯;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章