【发布时间】:2011-01-21 00:27:44
【问题描述】:
这是一道面试题。你如何实现读/写互斥锁?将有多个线程读取和写入资源。我不知道该怎么做。如果需要任何信息,请告诉我。
更新:我不确定我上面的陈述是否有效/可以理解。但我真正想知道的是,就互斥锁和其他所需的同步对象而言,如何在单个对象上实现多次读取和多次写入?
【问题讨论】:
-
您说的是普通互斥锁还是使用互斥锁/信号量/条件变量实现的多读/单写互斥锁?
-
@stefaanv:我不确定,但我认为它适用于使用互斥体/信号量/条件变量实现的多读/多写互斥锁。有这样的事情/方式吗?
-
多读/单写互斥锁并不简单,我只是试了一下但失败了:-(所以这里是维基百科链接:en.wikipedia.org/wiki/Readers-writer_lock
-
你如何使用什么来实现某个互斥锁?你需要某种基本的同步能力,我怀疑所有平台上的基本原理都是一样的。这至少需要一个平台标签。
-
这个答案显示了一个使用 boost 的 MRSW 互斥锁:stackoverflow.com/questions/989795/…
标签: c++ multithreading mutex