クリティカルセクションがある場合は、それをロックする方法を実装する必要があります。私は次の変種を見ました:
while(lock)
{
//do nothing
}
lock = true;
// code of critical section
lock = false;
while(lock)
ただし、理論的には、複数のスレッドが実行でき(= falseであることを確認して確認)、1つの連続したブロックで実行されないためwhile(lock)
、一緒にクリティカルセクションに入る可能性があるため、私はそれについて疑っています。lock = true;
私が間違っている?または、これは確かに安全ではない方法ですか?