Rya*_*uza 5 c++ multithreading mutex
尝试了解何时可以使用shared_lockover unique_lock,反之亦然。C++ 文档非常神秘!我知道,lock_guard如果我们希望立即进行范围内(或 RAII)互斥,则一般准则是使用两者。
这有什么关系吗condition_variable?如果我没记错的话,我见过这三个都与此一起使用。
我看到了一个关于堆栈溢出的问题,该问题类似,但避免在这里回答这个问题: https ://stackoverflow.com/questions/33770500/when-to-use-c11-mutex-lock-unique-lock-shared-lock -etc#:~:text=lock_shared()%20是%20a%20函数,%20%20范围的%20end%20。
这真的很简单。 unique_lock调用lock()互斥体。 shared_lock来电shared_lock()。
它们之间的区别在于,shared_lock旨在支持读/写锁中的读者。您可以让多个线程都获取共享锁并读取相同的数据,但如果有人想要写入数据,他们需要使用来lock获取写入数据的权限。
您应该使用哪一种取决于您正在寻找的模式。很多时候需要读/写锁(这就是标准包含对它们的支持的原因)。有时也需要一个简单的唯一互斥体。一般来说,如果读取和写入对您来说是有意义的概念,那么读/写互斥体很有可能shared_timed_mutex是正确的方法。
| 归档时间: |
|
| 查看次数: |
6697 次 |
| 最近记录: |