zoukankan      html  css  js  c++  java
  • 原子操作cas

    一、概念,

    基于处理器指令,把比较和交换合成一个指令完成,保证了原子性;

    因为是针对一个内存地址值的,一个内存地址指向一个变量,所以只对一个共享变量能保证原子性;

     

     二、原子操作类

    锁只有synchronized和显示锁;

    cas不是锁,是处理器指令原子操作;

    多线程下的cas原子操作,只会有一个线程操作成功;

    1、

     

    1、

     2、用原子操作类对该引用类对象包装

    不是版本戳引用原子操作类,原子操作类的对象中,直接将对应地址值赋予期望值作为新值;

    原子操作类包装值是变成了期望值,原子操作类包装的引用对象还是没变;

    java一切皆为对象,相当于原子操作类包装后自己也是一个对象;

    3、版本戳的原子操作类

     

    当第二个线程来改值时候,发现值被别的线程改过了,版本号变了,则conpareAndSet方法返回false, 没有改成自己想改的期望值,还是保留别人改过后的值和版本号;

     

     4、数组的原子操作类

     三、

       

  • 相关阅读:
    java的概述 常量 变量
    css 基础2
    css 盒子模型1
    css 基础1
    HTML 基础 3
    HTML基础2
    servletContext百科
    hibernate 一对多双向关联 详解
    hibernate generator class="" id详解
    Hibernate缓存原理与策略
  • 原文地址:https://www.cnblogs.com/wmqiang/p/11671608.html
Copyright © 2011-2022 走看看