2010-08-11 69 views
1

當我使用lock(){...}時,我不能保證哪個線程會首先進入鎖。在ReaderWriterLock中訂購

ReaderWriterLock怎麼樣?它是否像作家的FIFO一樣工作?

回答

2

ReaderWriterLock怎麼樣?它是否像作家的FIFO一樣工作?

它的確如此。

而你支付這個性能的懲罰,這就是爲什麼ReaderWriterLockSlim被引入—較少的開銷,但它是不公平的。

+0

所以ReaderWriterLock做的FIFO,但ReaderWriterLockSlim不! – Marcus 2010-08-11 16:09:09

+0

正確。 「RaaderWriterLock」文檔涵蓋了詳細信息(當作者離開所有待處理的讀者進入時,當他們全部完成,然後等待最長的作者進入,...)。 – Richard 2010-08-12 08:50:30