原子操作是什么?怎么实现?和锁的区别是什么?CAS 又是什么?
原子操作是什么?怎么实现?和锁的区别是什么?CAS 又是什么?
提示
题眼: 非重点,了解即可。
- 原子操作是指执行过程不能被中断的操作。某个值一旦执行原子操作,CPU 不会把它拆成多个可打断步骤。
- 原子操作通常直接依赖 CPU 指令完成,是无锁并发的基础。
- 锁更适合保护一整段临界区逻辑,而原子操作更适合保护单个共享变量的简单读写或状态更新。
- CAS(Compare And Swap)是一种常见的原子操作,它包含三个参数:内存地址、期望值、新值。
CAS 的执行过程如下:
- 先读取内存中的当前值。
- 比较当前值是否等于期望值。
- 如果相等,就写入新值;如果不相等,说明期间有其他线程改过,当前更新失败。
