gpt4 book ai didi

c++ - mutable boost::mutex 是否可以将锁定和等待功能分开?

转载 作者:行者123 更新时间:2023-11-30 02:08:10 26 4
gpt4 key购买 nike

所以我有像 read 这样的函数,可以从多个线程同时调用。而且我还有一个write 函数需要锁定所有read 函数。从哪里获得创建此类架构的示例?

我知道我们可以:

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()
}

那么怎么做呢?

最佳答案

你可以使用

boost::shared_mutex  m

Reader()
shared_lock lock(m)

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

了解更多关于 boost-locks 的信息:Boost thread sync mechanisms

要了解您正在处理的问题的类别:Wikpedia Link to Reader-WriterLock

要了解有关 POSIX 读写锁的更多信息,它可以通过非常简单的语法直接为您提供读写锁:POSIX reader-witer locks

关于c++ - mutable boost::mutex 是否可以将锁定和等待功能分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7198561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com