gpt4 book ai didi

c++ - Boost::mutex - 是否可以将它锁定在一个类函数中并在另一个类函数中解锁?

转载 作者:太空狗 更新时间:2023-10-29 23:33:58 24 4
gpt4 key购买 nike

所以我们有函数 ab 的类。线程 one 调用 a 并且没有其他线程可以调用 ab 直到 one会调用 b。意思是线程 one 将能够调用 a 并且比 a 和 ... 而且比 a 和 while 一个 没有调用b 其他想要调用ab 的线程正在等待。是否可以用 boost::mutex 做这样的事情,如何做?

最佳答案

互斥体不是问题;这是锁。最简单的解决方案是只是手动调用 mutex::lock()mutex::unlock(),忘记了关于 mutex::scoped_lock;毕竟,您不希望锁尊重范围。这个问题很常见;你可能想在发生异常时释放锁。一种解决方案是动态分配 mutex::scoped_lock,并使用 std::auto_ptrboost::shared_ptr 来管理它。 (奇怪的是,两者都不是boost::mutex::scoped_lockstd::lock_guard 都是可移动的,所以你需要动态分配才能转移所有权。)

关于c++ - Boost::mutex - 是否可以将它锁定在一个类函数中并在另一个类函数中解锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7118460/

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