CAS简介

news/2024/9/21 16:41:51/文章来源:https://www.cnblogs.com/zlzw1/p/18393447

CAS定义

CAS,是Compare and Swap的简称,实现并发算法是常用到的一种技术,在这个机制中有三个核心的参数。

  • 1.主内存中存放的共享变量的值:V(一般情况下这个V是内存的地址值,通过这个地址可以获得内存中的值)。
  • 2.工作内存中共享变量的副本值,也叫预期值:A。
  • 3.需要将共享变量更新到的最新值:B。



    所以CAS是一种乐观锁机制的自旋锁

CAS的例子

  1. 在内存地址V当中,存储着值为10的变量。
  2. 此时线程1想把变量的值增加1.对线程1来说,旧的预期值A=10,要修改的新值B=11.(预期值是指预期要处理的值,最新值指处理后的值)
  3. 在线程1要提交更新之前,另一个线程2抢先一步,把内存地址V中的变量值率先更新成了11。
  4. 线程1开始提交更新,首先进行A和地址V的实际值比较,发现A不等于V的实际值,提交失败。
  5. 线程1 重新获取内存地址V的当前值,并重新计算想要修改的值。此时对线程1来说,A=11,B=12。这个重新尝试的过程被称为自旋。

CAS的缺点

  • 1.循环时间长开销很大。
  • 2.CAS机制只能保证一个变量的原子性操作,而不能保证整个代码块的原子性。
  • 3.ABA问题。

ABA问题

解决方法

给V增加版本号,在compare阶段不仅要比较期望值A和地址V中的实际值,还要比较变量的版本号是否一致。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/791193.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网络安全 | Java代码审计】Code-Breaking Puzzles-javacon

未经许可,不得转载。源码:https://www.leavesongs.com/media/attachment/2018/11/23/challenge-0.0.1-SNAPSHOT.jar,下载至桌面。 考察知识点:SpEL注入 正文 执行命令运行环境: java -jar C:\Users\86177\Desktop\challenge-0.0.1-SNAPSHOT.jar浏览器访问localhost:8080使…

.NET周刊【9月第1期 2024-09-01】

国内文章 【音视频通话】使用asp.net core 8+vue3 实现高效音视频通话 https://www.cnblogs.com/1996-Chinese-Chen/p/18384394 该文章描述了使用SRS实现音视频通话和共享桌面的经验。从最初使用nginx的RTMP到研究SRS和ZLMediaKit的过程,再到最终实现功能的详细步骤,涵盖了服…

第十讲:怎么给字符串字段加索引?

第十讲:怎么给字符串字段加索引? ​ 现在,几乎所有的系统都支持邮箱登录,如何在邮箱这样的字段上建立合理的索引,是我们今天要讨论的问题。 总概类似邮箱登录系统的长表索引 假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的: mysql> create table SUser(…

软件工程课程第一次作业

软件工程作业软件工程课程第一次作业这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13243这个作业的目标 为以后软件工程的学习做准备工作学号 102202156后台博文编辑页面的截图。Lo…

记一次yoga联想电脑黑屏

yoga联想电脑黑屏记一次yoga联想电脑黑屏 下午还好好的,晚上就黑屏了 能开机但是后面就一直黑了网上到处搜半天没搜到合理的解决办法,bios进了,长按电源键20s也试了,之前电脑有一段时间待机一段时间后就会没有wifi,连wifi的设置都没有,后来解决办法是把设备适配器里有一个…

复旦大学王龑团队发布《静态与动态情感的面部表情识别》综述

论文链接:https://arxiv.org/pdf/2408.15777 复旦大学,王龑博士后领衔,发布《静态与动态情感的面部表情识别》(A Survey on Facial Expression Recognition of Static and Dynamic Emotions)综述,对基于图像的静态面部表情识别(SFER)和基于视频的动态面部表情识别(DFE…

IDEA 莫名选中当前光标下的行

发现 IDEA 莫名选中当前行,具体来说,在行与行之间来回点,有时候会选中当前光标所在的行。 还以为是装了什么 plugin 导致的,最后发现是因为钉钉最近上了个 AI 助理的功能:像上图那样取消勾选就没出现这个问题了。

RAM和ROM详解

RAM和ROM详解 前言 RAM与ROM是计算机中常见的存储器类型,它们在数据存储和访问方面扮演着重要的角色。 RAM(Random Access Memory)是一种临时存储器,用于存储计算机正在运行的程序和数据。它具有快速的读写速度和随机访问的特点。 相比之下,ROM(Read-Only Memory)是一种…

相机成相之像距、物距、焦距

物距---被拍摄物体到凸透镜的距离。像距---成像平面到凸透镜的距离。焦点---通过凸透镜的、平行主光轴的光线,在主光轴上的会聚点。焦距---凸透镜中心到焦点的距离。焦距固定的是定焦镜头,焦距可以调节的是变焦镜头。焦距、物距、像距最基本的关系可以用高斯成像公式表示:因…

CSP2024考前集训记录

CSP2024考前集训记录 2024.9.2 上午 高一学长供的题。A题 开考5分钟想到枚举 \(a\) 后再枚举 \(d=\gcd(b,c)\) 后转化为求 \(\varphi(\frac{b+c}{d})\),直接上线性筛。 然后时间复杂度 \(O(n \sqrt n)\),瓶颈在枚举 \(b+c\) 的因数上。 于是后半个比赛全在想怎么优化,想到的…

光学公式(物象位置) 1/u+1/v=1/f

1.透镜成像 由图可以看出 1.物距>2倍焦距:倒立缩小的像2.物距=2倍焦距:倒立等大的像3.物距<2倍焦距 且 >1倍焦距:倒立放大的像4.物距=1倍焦距:不成像5.物距<1倍焦距:倒立放大虚像同时也可以看出成像越大,像距越近。 成实像时,物体和像在透镜两侧;成虚像时,…

南沙信奥老师解题:1352:【例4-13】奖金

​【题目描述】由于无敌的凡凡在2005年世界英俊帅气男总决选中胜出,Yali Company总经理Mr.Z心情好,决定给每位员工发奖金。公司决定以每个人本年在公司的贡献为标准来计算他们得到奖金的多少。 于是Mr.Z下令召开m方会谈。每位参加会谈的代表提出了自己的意见:“我认为员工a的…