你的位置:首页 > 软件开发 > ASP.net > ReaderWriterLock的UpgradeToWriterLock方法的一种使用场景

ReaderWriterLock的UpgradeToWriterLock方法的一种使用场景

发布时间:2016-02-16 12:00:12
ReaderWriterLock对比互斥锁(lock)的优势是,读锁和写锁的分离,读锁之间互不排斥。当然,本文重点不是讲ReaderWriterLock本身,而是讲它的UpgradeToWriterLock方法。考虑以下场景。有一个Dictionary,多线程同时修改和遍历它。其 ...

ReaderWriterLock对比互斥锁(lock)的优势是,读锁和写锁的分离,读锁之间互不排斥。

当然,本文重点不是讲ReaderWriterLock本身,而是讲它的UpgradeToWriterLock方法。

考虑以下场景。

有一个Dictionary,多get='_blank'>线程同时修改和遍历它。其中有一个线程在遍历它时(读锁),需根据某些条件,可能(可能性较小,不然直接使用读锁也无妨)对此Dictionary做Remove操作。因为这个线程在此获取的是读锁,如果直接去对Dictionary做Remove操作,势必会影响其他也在读锁中的线程。怎么办呢?

这个时候,就是UpgradeToWriterLock方法出场的时候了!该方法的作用是把当前的读锁升级为写锁,升级后,该线程便会像获得写锁一样,等待其他读锁的结束。于是,接下来的Remove操作就是线程安全的了。(结束后记得DowngradeFromWriterLock)


原标题:ReaderWriterLock的UpgradeToWriterLock方法的一种使用场景

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录