n = n + 1 的机器码是这样表示的
LD X, r φ // 把 x 载入到寄存器中 load x register
ADD 1, r φ // 寄存器中的值加1
ST r φ,x // 储存X的值 store
当大量的线程同时执行这段代码,x总是从0 开始,每次都会把0 读入寄存器,因此可能是线程不安全的,也可能在一些机器上,这些指令是原子的,就不存在线程安全问题
n = n + 1 的机器码是这样表示的
LD X, r φ // 把 x 载入到寄存器中 load x register
ADD 1, r φ // 寄存器中的值加1
ST r φ,x // 储存X的值 store
当大量的线程同时执行这段代码,x总是从0 开始,每次都会把0 读入寄存器,因此可能是线程不安全的,也可能在一些机器上,这些指令是原子的,就不存在线程安全问题