两个线程各把共享计数器自增1000次,预期得到2000,结果却只剩1847。缺失的增量源于count++被拆成读取、加1、写回三步,当线程交错执行时,后写入的操作会覆盖前面的结果。动画和下文详细展示了这个过程。 count++ 被拆解为读取、加一、写回三步 在大多数编程语言里,count++ 看起来……

阅读全文