そのため、次の状況に対処しています。すべてのスレッドが特定の「if」に到達しないまでループを実行するようにしたいので、0 を格納するグローバル変数を使用し、if ステートメントに到達するとその変数が 1 になります。
問題は、ループの最後にすべてのスレッドを同期するためのバリアを実行し (私の場合は 4 つしかありません)、グローバル変数の値が 1 の場合にのみ到達し、他のスレッドの値が 0 になることです。
それはどうしてですか?グローバル変数が異なるスレッドで異なる値を持つにはどうすればよいですか?