Twi*_*ard 4 c++ condition-variable
采取这个代码:
std::condition_variable var;
var.wait(lock, [&sharedBool] { return sharedBool; });
Run Code Online (Sandbox Code Playgroud)
当var从sharedBool读取时,线程安全吗?如果不是,那么这样做sharedBool合理std::atomic<bool>吗?
读取sharedBool发生在由 锁定的互斥体的保护下lock。
只要在sharedBool持有同一个互斥锁的情况下发生所有并发访问,您的程序就是线程安全的。
由于您也无法在不wait持有锁的情况下使用条件变量,因此在此用例中使用原子通常是不合理的。
| 归档时间: |
|
| 查看次数: |
135 次 |
| 最近记录: |