java 併發

CAS操作

貼一個 AtomicInteger 實現主要原理,
AtomicInteger 類解釋:

Unsafe類解釋:

  • var5 = this.getIntVolatile(var1, var2); 獲取操作前的數值 (也就是該內存地址現在的數值)。
  • while(!this.compareAndSwapInt(var1, var2, var5, var4)) 一直嘗試cas操作。
    • var1,var2 直接確定內存地址。
    • var5 當前值
    • var4 目標值
    • compareAndSwapInt(CAS)操作含義 var1、var2 所在內存地址的值如果等於var5 就將該內存地址設值爲 var4.

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章