CAS机制详解
发布日期:2021-05-14 17:51:09 浏览次数:19 分类:精选文章

本文共 4024 字,大约阅读时间需要 13 分钟。

CAS������������������

���Java���������������������CAS(...)������������������������������������������������������������������������������������������������������������������������CAS������������������������������������������������������������������

CAS���������������

CAS������������Compare And Swap���������������������������������������������������������������������������������������������������������������������������������������������������

���CAS���������������������������������������������

  • ������������V���������������������������������������
  • ������A���������������������������V���������������
  • ������B������������������������������V������������������
  • ���������������������CAS���������������������������������������

  • ���������������������������������V���������������������������������������������A���
  • ������������������������������������������������������������������V���������������������B������������������������������������
  • CAS������������

    • ���������

      • CAS������������������������������������������������������������������������������������������������������������������������������
      • ���������������������������������������
    • ���������

      • ���������������������������������������������������������������������������������������������������������������ABA������������
      • ���������������������������������������������������MMU���������������������������������������������������������������������������

    CAS���Java������������

    JDK���������CAS������������������������������Atomic���������Unsafe���������

    Unsafe������������������

    Unsafe���������sun.misc������������������������������������������������

  • getAndAddInt(index, value, offset)���������������������������������������������������
  • compareAndSwapegoer(int, long, short)������������������������������������������������������������������������������
  • Atomic������������������������

    AtomicIntegerFieldUpdater���������������������������������������������Unsafe������������������������������rawl������������������������������������������


    Demo1���������������Demo2������

    Demo1������������

    public class Demo1 {
    private int i = 0;
    public void incr() {
    i++;
    }
    public static void main(String[] args) throws Exception {
    Demo1 demo1 = new Demo1();
    for (int j = 0; j < 2; j++) {
    new Thread(new Runnable() {
    @Override
    public void run() {
    for (int k = 0; k < 10000; k++) {
    demo1.incr();
    }
    }
    }).start();
    Thread.sleep(1000);
    }
    System.out.println(demo1.i); // ������������
    }
    }

    ������������

    ������������������������������������������������20000���������������������������������20000���������������i++���������������������������������������������������������������������������������

    ������������Demo2

    public class Demo2 {
    AtomicInteger i = new AtomicInteger(0);
    private void incr() {
    i.incrementAndGet();
    }
    public static void main(String[] args) throws Exception {
    Demo2 demo2 = new Demo2();
    for (int j = 0; j < 2; j++) {
    new Thread(new Runnable() {
    @Override
    public void run() {
    for (int k = 0; k < 10000; k++) {
    demo2.incr();
    }
    }
    }).start();
    }
    Thread.sleep(1000);
    System.out.println(demo2.i);
    }
    }

    ������������

    ���Demo2������������������AtomicInteger���������������������������incr()���������������incrementAndGet���������������������������������������������������������������


    CAS���������������������

    ABAB������

    ���������������������������������������������������������������������������lef��������������������������������������������� CAS���������������������������������������������������������������������������


    CAS������������������

    ���������������������������������������������������������������������������������������������������������������������CAS������������������������

    762

    上一篇:IntellIJ IDEA 配置 Maven
    下一篇:oracle中scope参数

    发表评论

    最新留言

    不错!
    [***.144.177.141]2025年04月11日 13时00分53秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章