并行编程关于jvm的内容
发布时间
阅读量:
阅读量
一、什么是CAS
1.1 悲观锁与乐观锁
对于悲观锁而言,在多数情况下数据发生并发冲突的可能性很高,在执行读操作之前就需要对资源进行锁定以防止其他线程在同一时刻对该资源进行读操作造成竞争性排斥现象。基于同步关键字(synchronized)以及回环锁(ReentrantLock)的设计方案都是典型的悲观锁实现方式。
对于乐观锁而言,在读操作之前不加锁。当进行写操作时,在此期间检查数据是否已被其他线程修改过:如果发现已被修改,则重新读取数据并重复上述步骤;若未被修改,则直接进行写入操作。判断数据是否被修改的同时完成写回新值的操作这一过程即为原子性校验(CAS)机制。
AtomicInteger的实现就是典型的乐观锁。
1.2 什么是CAS机制
CAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换。
在CAS机制中包含了三个核心参数:内存位置变量V、原有预期值A以及目标新值B。
在对一个变量进行更新操作时, 仅当该变量的实际值与预设的预期值A以及对应的内存地址V的实际存储位置相符时, 才会将内存地址V所对应的存储空间中的数值设置为B
CAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换。
CAS机制中涉及了三个核心参数:内存位置V用于存储当前数据;旧目标值A代表原有数据状态;新目标值B则
全部评论 (0)
还没有任何评论哟~
