1 个回答
1、可以保证原子性
CAS 会在修改时比较修改前的值和内存值是否相同,相同才修改,进而保证原子性。
2、低争用环境下性能高于锁无等待特性:CAS 是一种无锁操作,它不会让线程进入阻塞状态等待锁的释放。而传统的锁需要进行线程的阻塞和唤醒,设计到内核态和用户态的切换,会引入额外的开销。
轻量级操作:CAS 是一种原子操作,它只涉及到少数的 CPU 指令,因此在硬件层面执行速度较快。而传统锁需要获取锁、释放锁以及等待和唤醒,硬件层面速度比 CAS 慢。
避免竞争:CAS 是一种无锁操作,因此其不会涉及到上下文切换。传统锁在高争用环境下会存在频繁的上下切换,性能低于 CAS。
细粒度控制:CAS 可以实现细粒度的并发控制,只需要对涉及共享的数据进行 CAS,而不用锁定整个数据结构。这种并发方式粒度较细,并发度性能高。
发布于:1个月前 (02-08) IP属地:四川省
我来回答
您需要 登录 后回答此问题!