2010-11-22 104 views
5

我不完全確定如何最好地完成這種多線程場景,所以任何輸入將不勝感激。讀/寫鎖定混淆

我有一個塊,它讀取數據,幾個線程可以立即訪問。我有另一個寫入數據的塊,只有一個線程可以隨時寫入。只要任何線程正在讀取數據,它也不能開始寫入。 ReaderWriterLockSlim是這裏的方式,它會等待讀取線程退出之前阻止線程寫入?

回答

5

是的,ReaderWriterLockSlim非常適合頻繁的讀者/不常使用的寫作者場景。

行爲就像你猜測的那樣 - 只有單個作者,作家阻止,直到所有讀者都完成了,讀者在作者正在進行時無法訪問。

請注意,持有鎖的時間(無論是讀取還是寫入)足夠長以防止任何併發訪問,並且不再存在。

+0

很好,謝謝! – Homde 2010-11-22 14:53:08