マルチスレッド Java プログラムをテストしています。デバッグのために、スレッドにステートメントを出力させました。プリントアウトの順序は次のようになります。
- スレッド メッセージ 1
- スレッド メッセージ 2
- スレッド メッセージ 1
- スレッド メッセージ 2
問題は、特定のマシンで次のように変更されることです。
- スレッド メッセージ 1
- スレッド メッセージ 1
- スレッド メッセージ 2
- スレッド メッセージ 2
このマシンには、私がテストした他のすべてのマシンと同じバージョンの Java が搭載されています。以前のものには Windows 7 があったので、最初は Windows 8 の問題だと思いましたが、別の Windows 8 マシンで試してみたところ、正しく動作しました。だから私の質問は、Java でスレッドのスケジューリングに影響を与える他の変数は何ですか? 参考までに、正しくないシーケンスが発生するマシンは、Acer Aspire E1-521-0694 AMD Dual Core E2-1800 with Windows 8 です。