我想用boost :: shared_mutex来实现多读卡器/单写入器互斥锁。我的问题非常简单,当另一个线程试图锁定shared_mutex进行写入时,线程是否有可能获得读者访问shared_mutex的权限?例如,我有10个线程,只有一个能写,boost :: shared_mutex多读卡器/单写入器互斥锁
- 线程1对是shared_mutex一个shared_lock并尝试读取 东西
- 线程2具有对shared_mutex一个shared_lock并尝试读取 东西
- 线3对是shared_mutex一个unique_lock并尝试写一些东西
- 线4对是shared_mutex一个shared_lock并尝试读取 东西
- 线5对是shared_mutex一个shared_lock并尝试读取 东西
的shared_mutex目前赞同线程2锁,我的问题是,是否有可能螺纹4可以获得读访问到那个shared_mutex之前,线程3能写?读者/作者互斥体是否有可能陷入饥饿状态,例如100个读者v.s. 1位作家?
谢谢。
Duplicate:http://stackoverflow.com/questions/4203467/multiple-readers-single-writer-locks-in-boost – 2012-02-21 20:18:43
和在这里:http://stackoverflow.com/questions/989795/example-for- boost-shared-mutex-multiple-reads-one-write – 2012-02-21 20:19:32
相关,但不是愚蠢。 – Thomas 2012-02-21 20:23:15