排他制御

lock

lock 文を使うと、排他制御が簡単にできる。

lock (同期オブジェクト)
{
    // クリティカルセクション
}

他のスレッドが同期オブジェクトを使用している間(クリティカルセクション中)は、同期オブジェクトが開放されるのを待ってから実行する。 ただ、これには問題があって、lock をかけた順番に取得できるわけではなく、開放された時に最も早く動けたスレッドが取る。

Monitor クラス

ReaderWriterLockSlim クラス

読むときは複数同時に行って大丈夫だけど、書くときは、一人にしないといけない。というのを用いたもの

volatile

参考にしたサイト