当前位置: 首页 > news >正文

彩票网站搭建 做网站科技自主自强国家发展战略

彩票网站搭建 做网站,科技自主自强国家发展战略,做网站图片分辨率多少,吴中企业建设网站报价1. 前言 本节内容主要是对 CAS 操作原理进行讲解#xff0c;由于 CAS 涉及到了并发编程包的使用#xff0c;本节课程只对 CAS 的原理问题进行讲解#xff0c;有助于同学后续对并发编程工具使用的学习。本节具体内容点如下#xff1a; 了解 CAS 的概念#xff0c;这是本节…1. 前言 本节内容主要是对 CAS 操作原理进行讲解由于 CAS 涉及到了并发编程包的使用本节课程只对 CAS 的原理问题进行讲解有助于同学后续对并发编程工具使用的学习。本节具体内容点如下 了解 CAS 的概念这是本节内容的基础知识了解 CAS 诞生的背景能够更好地理解 CAS这是本节的基础知识了解 CAS 操作诞生的意义这也是 CAS 操作的作用所在了解 CAS 的操作原理这也是本节内容的核心知识点其他知识点都是围绕这一知识点展开的了解 CAS 中常见的 ABA 问题这是本节内容的重点。 2. 什么是 CAS 概念CAS 是 CompareAndSwap 的简称是一种用于在多线程环境下实现同步功能的机制。 从字面上理解就是比较并更新。简单来说从某一内存上取值 V和预期值 A 进行比较如果内存值 V 和预期值 A 的结果相等那么我们就把新值 B 更新到内存如果不相等那么就重复上述操作直到成功为止。 3. CAS 诞生的背景 synchronized 时代在多线程中为了保持数据的准确性避免多个线程同时操作某个变量很多情况下利用关键字 synchronized 实现同步锁。 使用 synchronized 关键字可以使操作的线程排队等待运行可以说是一种悲观策略认为线程会修改数据所以开始就把持有锁的线程锁住其他线程只能是挂起状态等待锁的释放所以同步锁带来了效率问题。 synchronized 时代效率问题在线程执行的时候获得锁的线程在运行其他被挂起的线程只能等待着持有锁的线程释放锁才有机会运行在效率上都浪费在等待上。 在很多的线程切换的时候由于有同步锁就要涉及到锁的释放加锁这又是一个很大的时间开销。 volatile 时代与锁阻塞机制的方式相比有一种更有效地方法非阻塞机制同步锁带来了线程执行时候之间的阻塞而这种非阻塞机制在多个线程竞争同一个数据的时候不会发生阻塞的情况这样在时间上就可以节省出很多的时间。 我们会想到用 volatile使用 volatile 不会造成阻塞volatile 保证了线程之间的内存可见性和程序执行的有序性可以说已经很好的解决了上面的问题。 volatile 时代原子操作问题一个很重要的问题就是volatile 不能保证原子性对于复合操作例如 i 这样的程序包含三个原子操作取值增加赋值。 4. CAS 操作诞生的意义 意义从上边 CAS 操作诞生的背景所说的CASCompare And Swap 比较和交换解决了 volatile 不能保证原子性的问题。从而 CAS 操作即能够解决锁的效率问题也能够保证操作的原子性。 Tips在 JDK1.5 新增的 java.util.concurrent (JUC java 并发工具包) 就是建立在 CAS 之上的。相比于 synchronized 这种堵塞算法 CAS 是非堵塞算法的一种常见实现。所以 JUC 在性能上有了很大的提升。 5. CAS 操作原理 CAS 主要包含三个操作数内存位置 V进行比较的原值 A和新值 B。 当位置 V 的值与 A 相等时CAS 才会通过原子方式用新值 B 来更新 V否则不会进行任何操作。无论位置 V 的值是否等于 A都将返回 V 原有的值。 上面说到了同步锁是一种悲观策略CAS 是一种乐观策略每次都开放自己不用担心其他线程会修改变量等数据如果其他线程修改了数据那么 CAS 会检测到并利用算法重新计算。 CAS 也是同时允许一个线程修改变量其他的线程试图修改都将失败但是相比于同步锁CAS 对于失败的线程不会将他们挂起他们下次仍可以参加竞争这也就是非阻塞机制的特点。 6. ABA 问题 ABA 问题描述 假设有两个线程线程 1 和线程 2线程 1 工作时间需要 10 秒线程 2 工作需要 2 秒主内存值为 A第一轮线程 1 和线程 2 都把 A 拿到自己的工作内存第 2 秒线程 2 开始执行线程 2 工作完成把 A 改成了 B 第 4 秒线程 2 把 B 又改成了 A然后就线程 2 进入休眠状态第 10 秒线程 1 工作完成看到期望为 A 真实值也是 A 认为没有人动过其实 A 已经经过了修改只不过又改了回去然后线程 1 进行 CAS 操作。 ABA 问题解决为了解决这个问题在每次进行操作的时候加上一个版本号或者是时间戳即可。 7. 小结 本节内容的核心知识点即了解 CAS 的操作原理其他知识点都是围绕这一知识点展开的对于 CAS 中所引发的 ABA 问题以及该问题的解决方式为本节内容重点。需要对这两点进行着重掌握。
http://www.w-s-a.com/news/418314/

相关文章:

  • 微网站是用什么开发的wordpress中英文主题
  • 纯静态网站怎么做淄博seo开发
  • 江西新农村建设权威网站盐步网站制作
  • 网站ui设计例子怎么做打鱼网站
  • 在1688做公司网站wordpress category
  • 单页面 网站 模板网站代理公司
  • 手机网站底部电话代码网站后台点击添加图片没有反应
  • 龙岩建设局网站声明自学制作网站难不难
  • 济南网站优化小黑godaddy中文网站开发
  • 做微课常用的网站广州seo优化推广
  • 主机屋如何做网站电脑网页游戏大全
  • 工作网站建设中布线费用账务处理特色的重庆网站推广
  • dede 网站地图模板htm写作网站水平哪个最好
  • 服务器上的网站erp教学零基础入门
  • 网站建设58设计资料网站
  • 如何把动态图发网站做头像网页设计实训报告小结
  • 做简历用的网站wordpress版权说明
  • 网站关键词有哪些网站新闻前置审批
  • 怎么自己注册网站义乌做公司网站
  • 做哪种网站赚钱苏州住房城乡建设部网站
  • 镇江做网站学编程学哪一种比较好
  • 华美天一建筑公司网站赚钱做任务的网站有哪些
  • asp网站打开速度慢家乡网页设计教程
  • 网站 设计 深圳书店网站的建设
  • 北京网络营销推广培训哪家好南宁软件优化网站建设
  • flash网站引导页仓库管理系统源码
  • 济南网站制作公司排名营销型网站管理系统
  • 公司网站设计要多少钱用什么做网站的访问量统计
  • 湖北省住房和城乡建设厅门户网站沈阳网络平台推广公司
  • 河南平台网站建设公司网站如何提高转化率