方法一

禁用CPU中断,也就是禁用线程切换,达到一个线程可以一直执行至生命周期结束的效果。这样该线程的指令就是要执行就都执行,要是不执行就都不执行。

但是在多核的情况下,这种解决办法就不奏效了,因为即使线程没有切换,仍然无法解决同一时刻只有一个线程在执行(多核可能造成同一时刻多个线程在执行)

比如写long类型的数操作,写高32位和写低32位应当是原子的,对于单核且不调度来说,要执行就都执行要不执行就都不执行,但是对于多核有可能两个线程都会写高32位。