java并发编程--CAS算法(Compare And Swap)

博客介绍了CAS算法,其全称是Compare And Swap(比较交换)。核心思想是提供期望值,若与当前线程变量相同,可执行更新操作;若不同,说明值已被其他线程修改,可选择再尝试或放弃。Java的CAS操作通过Unsave类,借助JNI调用c/c++代码完成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CAS的全称是Compare And Swap 即比较交换,其算法的核心思想如下函数:

CAS(V,E,N)  参数:    V表示要更新的变量          E预期值        N新值

如果V值等于E值,则将V的值设为N.若V值和E值不同,则说明已经有其他线程做了更新,则当前线程说明都不能做.通俗的理解就是CAS操作需要我们提供一个期望值,当期望值与当前线程的变量相同时,说明还没线程修改该值,当前线程可以进行修改,也就是执行CAS操作,但如果期望值与当前线程不符,则说明该值已经被其他线程修改,此时不执行更新操作,但可以选择或者再尝试修改变量,也可以放弃操作.

java的CAS操作通过Unsave类来完成里面基本都是native,即通过JNI调用c/c++等代码.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值