可变的boost ::互斥是有可能单独锁和等待功能?(mutable boost::mutex is

2019-09-28 07:08发布

所以我有这样的功能read ,可以从多个线程同时调用。 而且我有一个函数来write需要锁定所有的read功能。 从哪里获得例如建立这样archetecture的?

我得到的,我们可以有:

mutable boost::mutex the_read_mutex;
mutable boost::mutex the_write_mutex;

和:

void write()
{
    // make all new readers wait and wait for all other currently running read threads();
}

void read()
{
    // do not make all new readers wait, and wait for all currently running write thread()
}

因此,如何做这种事?

Answer 1:

您可以使用

boost::shared_mutex  m

Reader()
 shared_lock   lock(m)

Writer()
 upgradeable_lock lck(m)
 upgrade_to_unique_lock uniqueLock(lck);

为了更多地了解升压锁: 升压线程同步机制

要了解类,你正在处理的问题: Wikpedia链接到阅读器,WriterLock

为了更多地了解POSIX读写锁,直接为您提供了很多简单的语法读者写锁: POSIX的读者,到冬季快要锁



文章来源: mutable boost::mutex is it possible to separate lock and wait functions?