线程惯性

维基百科,自由的百科全书

线程惯性指在多线程编程中的一种错误的心理状态,它假定当前编写的代码执行完毕后会继续执行下一条代码。而实际上,在现代处理器中,线程随时(当该线程的时间片用完时)可能被处理器冻结,而处理器被另一线程抢占(这里指单处理器上的情况,在多处理器上,情况更加复杂)。

因此,如果程序执行的结果依赖于这两个(或者可能更多)线程的顺序,程序就可能出错。

因为线程执行具有不确定性,这种错误并不是每次都会出现,而且在某些特定的机器上可能永远不会出现。因此,这种错误较难发现。