首页 > 编程语言 >Java - CAS 总结

Java - CAS 总结

时间:2023-01-01 17:13:00浏览次数:47  
标签:总结 Java 变量 CAS Unsafe 操作 共享

CAS 介绍

CAS 操作包含三个操作数——内存位置(V)、预期原值(A)和新值(B)。 如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值 ,否则处理器不做任何操作。

Java 并发包

JUC 并发包中原子类,都存放在 java.util.concurrent.atomic 类路径下。

Unsafe 类

Unsafe 是位于 sun.misc 包下的一个类,Unsafe 提供了CAS 方法,直接通过 native 方式调用了底层的 CPU 指令。

CAS 缺点

1、ABA 问题。JDK 提供了两个类 AtomicStampedReference、AtomicMarkableReference 来解决 ABA 问题。
2、只能保证一个共享变量的原子操作。规避方法为:使用 AtomicReference 把多个共享变量合并成一个共享变量来操作。
3、循环时间长开销大。高并发下 N 多线程同时去操作一个变量,会造成大量线程 CAS 失败。

标签:总结,Java,变量,CAS,Unsafe,操作,共享
From: https://www.cnblogs.com/feiqiangsheng/p/17018275.html

相关文章

  • JavaScript奇淫技巧:反调试
    JavaScript奇淫技巧:反调试本文,将分享几种JS代码反调试技巧,目标是:实现防止他人调试、动态分析自己的代码。检测调试,方法一:用console.log检测代码:varc=newRegExp("1");c.......
  • 【博学谷学习记录】超强总结,用心分享|前端CSS总结(一)
    CSS总结(一)shift+alt,选中多行外链式<linkrel="stylesheet"href="./my.css">1选择器1.1标签选择器结构:标签名1.2类选择器结构:.类名{}1.3id选择器结构:#id......
  • java流程控制
    java流程控制Scanner通过Scanner类可以获取用户的输入通过Scanner类的next()与nextLine()方法获取输入的字符串,再读取我们一般需要使用hasNext()与hasNextLine()判断是否还有输......
  • Java集合 - HashMap
    介绍HashMapMap是一种存储键值对的集合。Map集合可以根据key快速查找对应的value值。HashMap是Map类型的一中。HashMap的底层存储结构是:数组+链表+红黑树......
  • Arrays.sort() in Java with examples
    https://www.geeksforgeeks.org/arrays-sort-in-java-with-examples/Arrayclass isaclasscontainingstaticmethodsthatareusedwitharraysinordertosearch......
  • thinkphp5框架使用总结
    一.路径访问方式http://网址/index.php/模块/控制器/操作.html其中:1.模块就是application下的一个文件夹2.控制器就是这个文件夹下面controler里的一个php文件3.操作就是......
  • Java集合 - HashMap
    介绍HashMapMap是一种存储键值对的集合。Map集合可以根据key快速查找对应的value值。HashMap是Map类型的一中。HashMap的底层存储结构是:数组+链表+红黑树......
  • JAVAEE零基础小白免费技术教程之集合体系结构讲解
    day13_JAVAOOP课程目标1.【理解】集合的体系结构2.【掌握】Collection集合中常用的方法3.【理解】Iterator迭代器4.【掌握】增强for的使用5.【理解】List集合的......
  • java中的Vector类的add()解析
    示例代码如下:publicclassVectorTest{publicstaticvoidmain(String[]args){Listlist=newVector();//接口的多态for(inti=0;i<10;......
  • JAVA零基础小白免费学习教程之Object类和String类
    day10-JAVAOOP课程目标1.【理解】什么是API2.【掌握】API的使用方式3.【理解】Object类4.【掌握】Object类中的equals方法5.【掌握】String类中的常用方法API......