0%

原子操作

下面哪个选项不需要同步(synchronized)?

  • a++;

  • a = b;

  • a = 1;

分析:a++ 实质上是 a = a + 1,要想实现这个操作,首先要知道a的值,所以需要取出a的值,然后把a+1赋给a。

a = b这个操作首先将a加载到寄存器中,然后将b加载的寄存器中,再赋值。

a = 1这个操作无需读取,直接把1写到内存即可。

综上所述,只有a = 1是原子操作(要么不做,要么一步到位),不需要同步。