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

被折叠的 条评论
为什么被折叠?



