教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

什么是CAS?有什么特性?

更新时间:2020年12月08日17时01分 来源:传智教育 浏览次数:

好口碑IT培训

Synchronized显然是一个悲观锁,因为它的并发策略是观的:不管是否会产生竞争,任何的数据操作都必须要加锁、用户态核心态转换、维护锁计数器和检査是否有被阻塞的线程需要被唤醒等操作。随着硬件指令集的发展,我们可以使用基于冲突检测的乐观并发策略。先进行操作,如果没有其他线程征用数据,那操作就成功了;如果共享数据有征用,产生了冲突,那就再进行其他的补偿措施。这种乐观的并发策略的许多实现不需要线程挂起,所以被称为非阻塞同步。

乐观锁的核心算法是CAS( Comparand Swap,比较并交换),它涉及到三个操作数:内存值、预期值、新值。当且仅当预期值和内存值相等时才将內存值修改为新值。

这样处理的逻辑是,首先检查某块內存的值是否跟之前我读取时的一样,如不一样则表示期间此内存值已经被别的线程更改过,舍弃本次操作,否则说明期间没有其他线程对此内存值操作,可以把新值设置给此块內存CAS具有原子性,它的原子性由CPU硬件指令实现保证,即使用JNI调用Native方法调用由C++编写的硬件级别指令,JDK中提供了Unsafe类执行这些操作。


猜你喜欢:

什么是负载均衡?负载均衡原理详解

Spring AOP实现原理和常见代理的区别

网络通信协议有哪些?

Java培训课程





下面是传智教育公开的几套Java课程,您可以下载和在线观看学习,如果想深入学习java并想找到不错的java开发相关工作,建议报班学习传智教育Java高级软件工程师课程获取【Java视频教程+资料】加播妞1605146928606_课程资料.jpg:435946716。



0 分享到:
和我们在线交谈!