執行緒慣性

執行緒慣性指在多執行緒編程中的一種錯誤的心理狀態,它假定當前編寫的代碼執行完畢後會繼續執行下一條代碼。而實際上,在現代處理器中,執行緒隨時(當該執行緒的時間片用完時)可能被處理器凍結,而處理器被另一執行緒搶占(這裡指單處理器上的情況,在多處理器上,情況更加複雜)。

因此,如果程序執行的結果依賴於這兩個(或者可能更多)執行緒的順序,程序就可能出錯。

因為執行緒執行具有不確定性,這種錯誤並不是每次都會出現,而且在某些特定的機器上可能永遠不會出現。因此,這種錯誤較難發現。