場合によっては、別のスレッドがこのセクションにある間、コードの一部のセクションが1つのスレッドで使用されないようにする必要があります。マルチスレッドをサポートする言語を使用すると、これらの部分を「ロック」することで簡単に実現できます。しかし、スレッドを「シミュレート」する必要がある場合lock
、C#のキーワードやLock
Javaのインターフェイスのような組み込みのものはありません。これらの場合にセクションをロックするために私が見つけた最良の方法は、次のようになります。
if (!locked){
locked = true;
do some stuff
locked = false;
} else {
add to queue
}
現在のソリューションの欠点は何ですか?積極的に使う価値はありますか?