[Java 并发编程] 23. CAS算法

文章目录


一、CAS

CAS (Compare And Swap的缩写) 算法是在设计并发程序时常用的一个算法。通常情况下, CAS 算法接收两个入参,一个期望值,一个修改值,如果期望值与实际值相同,那么将修改值赋予指定值。听起来CAS算法很复杂,实际上当你理解它之后就变得非常简单。

在JUC提供的Lock的实现类中,大量的使用了CAS算法,比如ReentrantLock,大致算法如下:

public void compareAndSwap(int expect, int update) {
    if (actual == expect) {
        actual = update;
    }
}

CAS 是一种原子操作,保证了在并发情况下是线程安全的。CAS 的具体操作是比较和替换,首先比较指定值和期望值是否一致,若一致则将修改值赋予指定值。

Java 中,sun.misc.Unsafe 类提供了一系列 compareAndSwap 函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值