本文主要是介绍CAS-ABA问题编码实战,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
多线程情况下演示AtomicStampedReference解决ABA问题
package com.nanjing.gulimall.zhouyimo.test;import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicStampedReference;/*** @author zhou* @version 1.0* @date 2024/1/3 10:07 下午*/
public class ABADemo {private static AtomicInteger atomicInteger = new AtomicInteger(100);private static AtomicStampedReference<Integer> atomicStampedReference = new AtomicStampedReference<>(100,1);public static void main(String[] args) {new Thread(()->{int stamp = atomicStampedReference.getStamp();System.out.println(Thread.currentThread().getName()+"----"+"首次版本号:"+stamp);try {//暂停500毫秒,保证后面的t4线程初始化拿到的版本号和我一样TimeUnit.MICROSECONDS.sleep(500);} catch
这篇关于CAS-ABA问题编码实战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!