读/写器使用条件变量锁定超时

时间:2009-01-27 13:43:03

标签: c++ c multithreading locking

如何使用C / C ++中的条件变量编写带超时的Reader / Writer锁?

4 个答案:

答案 0 :(得分:4)

如果你只是在寻找一个图书馆,Boost.Thread可能会做你想要的。

答案 1 :(得分:1)

您可以查看Java实现的来源ReentrantReadWriteLock

抓住JDK解压缩src.zip文件并搜索源代码。

答案 2 :(得分:0)

目前的标准C ++中不支持这样的东西,虽然C ++ 0x会有一些线程支持(我没有检查过多少)。因此,任何答案都必须依赖于平台,使用非常一般意义上的平台。

可以编写在不同底层系统中表现相似的库,并且有相当多的跨平台库。 (当然,如果底层平台的功能不同,这些都会导致效率低下。)可能有一个普遍接受的C ++线程库可以在Windows和基于Unix的系统上运行(这几乎就是你要运行的任何东西)现在在桌面上),但我不知道一个随便。

因此,这个问题无法按照要求回答。有必要在特定平台或库上回答它,并且没有指定。如果再加上对图书馆推荐的要求,那将是有意义的。

答案 3 :(得分:0)

查看Boost.Thread库。具体来说:shared_mutexupgradeable_mutex个对象。