原子性(Atomicity)
原子性指一个或多个操作在CPU的执行过程中不被中断的特性。
Java的一个语句往往由多个CPU指令构成。例如x+=1;
语句,由3个CPU指令构成:
- 将x变量从内存加载到寄存器
- 在寄存器中执行
+1
操作 - 将结果写入内存(或缓存)
CPU可能在任意一个CPU指令完成后执行线程切换。如下图,在两次count+=1
命令执行过后,count的值却为1:
Search
Dec 14, 2023, 1 min read
原子性指一个或多个操作在CPU的执行过程中不被中断的特性。
Java的一个语句往往由多个CPU指令构成。例如x+=1;
语句,由3个CPU指令构成:
+1
操作CPU可能在任意一个CPU指令完成后执行线程切换。如下图,在两次count+=1
命令执行过后,count的值却为1: