C 语言 int 读写是否需要加锁
Posted 仓
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 语言 int 读写是否需要加锁相关的知识,希望对你有一定的参考价值。
CPU 同内存交换数据的最小内存单位为4字节,即32位由CPU总线决定,所以小于4 字节的读取或者赋值操作无需加锁。
即使不加锁也不会出现读取到的4字节中一半数据被改一半数据没有被改的情况。
但对 i++ 这类组合操作,仍可能需加锁. 因为i++是至少一次读取i一次写入i这两条命令,中间被打断就无法保证++n次之后值确实被加了n。
当然倘若我们的i++只是做一个示意性的统计,允许偶尔的操作遗漏,那就直接操作好多,只是最终的结果可能少加了几个。
以上是关于C 语言 int 读写是否需要加锁的主要内容,如果未能解决你的问题,请参考以下文章