并发编程之cas

本文深入解析了并发编程中CAS(compare and swap)操作的核心原理。CAS作为原子操作,由CPU指令直接支持,确保了多线程环境下变量更新的安全性。文章详细介绍了CAS的三个参数:变量V、期望值E及新值U,并阐述了Java中如何利用Unsafe类实现CAS,通过compareAndSwap方法在Atomic系列类和Lock中应用。

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

并发编程之cas


cas compare and swap 原语操作通过cpu指令实现。cas操作是一组不可分割的指令,必须连续执行,在执行过程中不允许被中断。
cas(V,E,U) 一般情况包含三个参数:V表示要更新的变量,E表示期望的值,U表示新值。cas希望提供一个期望值,如果当前值与期望值相同则执行交换,更新变量为新值。
java 中的cas依赖于Unsafe类实现,Unsafe类位于sun.misc包中,Unsafe类的所有方法都是native方法。Unsafe类具有向c语言一样的指针,可以直接操作内存,可以直接调用操作系统底层资源执行相应的任务。java中cas基于Unsafe的compareAndSwap方法(Int ,Long,Object)实现。

java concurrent包下的Atomic系列类与Lock都是基于Unsafe实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值