以前做过简单了解,奈何没写下来,今天在巩固一下:

CAS算法基于硬件平台的汇编指令,其中需要对乐观锁和悲观锁进行理解

悲观锁:所访问的变量会被其他线程来访问,必须先锁住;
乐观锁:所访问的变量不会被其他线程访问;

乐观锁是非阻塞的,所以不会出现死锁

CAS算法的实现,就是基于乐观锁的,在线程需要操作变量,会先拷贝个变量到自己内存中,等运算完成之后,在和原有变量进行对比,通常是有3个变量,一个是原有变量,一个是预期值,一个是新值。

剩下就是线程得到处理器的执行,然后执行过程中,会对比预期值(副本)与主存的数据,对比相同,则会执行下一步(根据),如果预期值与主存的数据不同,则放弃进行下一步。

参考:
https://blog.csdn.net/mashaokang1314/article/details/84335970

java基础 CAS算法的简单理解相关推荐

  1. 协同过滤算法的简单理解《推荐系统实践》

    协同过滤算法的简单理解 本文主要是讲解一下<推荐系统实践>中UserCF和ItemCF这两种基于领域的推荐算法,写出自己的理解. UserCF(基于用户的协同过滤算法) 这种推荐算法的出发 ...

  2. 【深度学习入门基础】二、简单理解 Transformer

    [深度学习入门基础]二.简单理解 Transformer 文章目录 [深度学习入门基础]二.简单理解 Transformer 自注意力层 多头注意力 Transformer 输入(输出)嵌入 位置编码 ...

  3. java 调用关系_【Java基础】几种简单的调用关系与方法

    直接上代码吧. class lesson4AB //同一个类下的public修饰的方法A,B可以相互调用 { public void A() { B();//等价于this.B(); } public ...

  4. java基础-CAS、synchronized和AQS的理解

    乐观锁与悲观锁的区别? 悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程 ...

  5. 夯实Java基础系列9:深入理解Class类和Object类

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  6. 夯实Java基础系列11:深入理解Java中的回调机制

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  7. 夯实Java基础系列18:深入理解Java内部类及其实现原理

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  8. [转载] 夯实Java基础系列8:深入理解Java内部类及其实现原理

    参考链接: Java内部类 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tut ...

  9. 夯实Java基础系列14:深入理解Java枚举类

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  10. JAVA数据结构与算法【简单介绍】

    前几天去面一个大厂,面试官特别好,面试官说到,我们的学习不能本末倒置,数据结构和算法是程序的基础,如果数据结构你没有学好,你真正意义上不算会写代码.你的代码是各处粘贴,杂乱无章的. 由于现在大多用JA ...

最新文章

  1. ASP.NET中一种超简单的Ajax解决方案
  2. ubuntu配置GDB
  3. 《剑指Offer》52:两个链表的第一个公共节点
  4. LeetCode 77 组合
  5. Spring Boot使用hikari、druid、c3p0等数据库连接池详解
  6. 【数据结构(C语言)】数据结构-树
  7. 【php毕业设计】基于php+mysql+apache的在线购物网站设计与实现(毕业论文+程序源码)——在线购物网站
  8. 在多个浏览器中添加IDM插件
  9. 软考高级系统架构设计师总结
  10. mysql innodb_data_file_path_应急预案:专有云V3环境中RDS MySQL5.7实例修改innodb_temp_data_file_path参数的方法...
  11. python成绩统计及格学平成_强化学习训练Chrome小恐龙Dino:最高超过4000分
  12. 模拟软件-OLED和Solar cell的模拟软件(Emison模块)-[Setfos]
  13. ODL框架项目搭建小试牛刀-demo篇
  14. 2016~2022 文字生成图像 Text to image(T2I)论文整理 阅读路线和阅读指南
  15. MySQL设置自增初始值和步长
  16. uniapp 二维码展示和扫码
  17. MTK芯片系列手机的维修宝典
  18. 基于多种分类方式的新闻文本种类预测[2021论文附代码]
  19. 计算机网络笔记--1 计算机网络与网络应用(上)
  20. sql server数据库怎样收缩数据库?

热门文章

  1. 软件质量管理QM、QA、QC的区别
  2. 学习周刊-2021年第19周
  3. H.265中熵编码器的总结
  4. 行为树BT设计与实现
  5. 基于ricequant线性回归量化交易
  6. JQ实现图片预览(轮播,放大缩小,拖拽,ajax请求,旋转)
  7. 进制之间的转换(史上最全自己纯手工总结)
  8. VS2013下载及安装
  9. python xlwt_【已解决】Python中使用xlwt设置cell的背景色
  10. Wso2 api manager 帮助文档