1

スレッドで __asm{} コードを使用するのは危険ですか?

たとえば、1 つのコアで 2 つのスレッドを実行し、別のコアで main() を実行しています。一方のスレッドが eax に書き込み、ebx を読み取り、もう一方のスレッドが eax を読み取り、ebx に書き込むとどうなりますか? これらのレジスタを main() から読み取るとどうなりますか?

4

2 に答える 2

7

各スレッドには、それが保持する独自のレジスタ セットがあります。別のコアで実行されているか、オペレーティング システムがコンテキスト スイッチでレジスタをスワップアウトしたためです。

于 2012-07-28T16:56:51.790 に答える
2

「グローバル」(非スタック) 変数のみがスレッド間で共有されます。

これはすでに SO で議論されています。

于 2012-07-28T16:58:59.560 に答える