C语言中, 多线程对同一 int 型变量进行读写是否需要加锁 ?
CPU 同内存交换数据的最小内存单位为4字节, 因此小于 4 字节的无需加锁, 如 int, char , 而大于4 字节的, 如 double, 64位的 long 需要加锁. 以上只是对其读写不需加锁, 对 i++ 这类组合操作,仍需加锁.
C语言中, 多线程对同一 int 型变量进行读写是否需要加锁 ?
CPU 同内存交换数据的最小内存单位为4字节, 因此小于 4 字节的无需加锁, 如 int, char , 而大于4 字节的, 如 double, 64位的 long 需要加锁. 以上只是对其读写不需加锁, 对 i++ 这类组合操作,仍需加锁.