CPU 同内存交换数据的最小内存单位为4字节,即32位由CPU总线决定,所以小于4 字节的读取或者赋值操作无需加锁。
即使不加锁也不会出现读取到的4字节中一半数据被改一半数据没有被改的情况。

但对 i++ 这类组合操作,仍可能需加锁. 因为i++是至少一次读取i一次写入i这两条命令,中间被打断就无法保证++n次之后值确实被加了n。
当然倘若我们的i++只是做一个示意性的统计,允许偶尔的操作遗漏,那就直接操作好多,只是最终的结果可能少加了几个。

相关文章:

  • 2021-05-30
  • 2022-12-23
  • 2021-11-17
  • 2021-09-20
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-04
  • 2022-12-23
  • 2021-11-26
  • 2021-06-22
  • 2021-12-19
  • 2021-12-04
相关资源
相似解决方案