スレッドで __asm{} コードを使用するのは危険ですか?
たとえば、1 つのコアで 2 つのスレッドを実行し、別のコアで main() を実行しています。一方のスレッドが eax に書き込み、ebx を読み取り、もう一方のスレッドが eax を読み取り、ebx に書き込むとどうなりますか? これらのレジスタを main() から読み取るとどうなりますか?
スレッドで __asm{} コードを使用するのは危険ですか?
たとえば、1 つのコアで 2 つのスレッドを実行し、別のコアで main() を実行しています。一方のスレッドが eax に書き込み、ebx を読み取り、もう一方のスレッドが eax を読み取り、ebx に書き込むとどうなりますか? これらのレジスタを main() から読み取るとどうなりますか?
各スレッドには、それが保持する独自のレジスタ セットがあります。別のコアで実行されているか、オペレーティング システムがコンテキスト スイッチでレジスタをスワップアウトしたためです。
「グローバル」(非スタック) 変数のみがスレッド間で共有されます。
これはすでに SO で議論されています。