は最近、私はウェブサイトでこのコードを見てきましたし、私の質問は以下の通りです:マルチスレッド環境ではマルチスレッド時に単一のbool変数をロックする?
private bool mbTestFinished = false;
private bool IsFinished()
{
lock(mLock)
{
return mbTestFinished;
}
}
internal void SetFinished()
{
lock(mLock)
{
mbTestFinished = true;
}
}
、mbTestFinished
へのアクセスをロックすることが本当に必要なのか?二つの理由から、私の意見では
これはCPUキャッシュの読み込み(スレッド間ではうまくいかない)を保証する最も証明可能なメカニズムです - 'volatile'も機能しますが、複雑すぎる理由から*揮発性のインテント*ではなく、副作用) –
@MarcGravell私はいつも「揮発性」の意志と考えていました。あなたが何かを説明する良いリンクをドロップする可能性がありますか? –
@romkyns:この[回答](http://stackoverflow.com/a/4103879/158779)では、いくつかの洞察が得られます。 –