學完本章中,讀者需要回答:
1.什么是CAS?
2.什么是ABA?如何解決ABA問題?
3. AtomicReference原子參考在什么場景下使用?
6.4.1 CAS是什么
CAS是CompareAndSwap的縮寫,作用是比較與交換,
執行緒對變數的讀取賦值等操作,要先將變數從主記憶體拷貝自己執行緒的作業記憶體空間,在作業記憶體中進行操作,操作完成后再將變數寫回主記憶體
package com.javaliao.backstage;
import java.util.concurrent.atomic.AtomicInteger;
public class Demo {
//主執行緒main,程式入口
public static void main(String[] args) {
//原子類整型,在主記憶體中創建這個物件給初始值為5,默認初始值為0
AtomicInteger atomicInteger = new AtomicInteger(5);
//當執行緒中的作業記憶體要寫回主記憶體時,拿第一個引數作為期望值和主記憶體中的值進行比較,如果期望值和主記憶體中的值相同都為5,更新值主記憶體中的值為2019
System.out.println(atomicInteger.compareAndSet(5, 2019)+"\t : "+ atomicInteger.get());
//執行緒a
new Thre
CSDN認證博客專家
Java
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/253474.html
標籤:java
