C++ condition_variable
时间: 2023-02-19 22:37:04 浏览: 10
condition_variable源码以及详细分析.docx
condition_variable 是 C++ 的一个类,它是条件变量的实现。它可以在多线程编程中用于同步线程,使得某个线程在等待某个条件的满足时被阻塞,直到另一个线程通知它条件已满足。通常情况下,条件变量和互斥量配合使用,用于实现线程同步。
例如:
```
#include <condition_variable>
#include <mutex>
std::condition_variable cv;
std::mutex m;
void function_1()
{
std::unique_lock<std::mutex> lock(m);
cv.wait(lock, []{ return done; });
// do something
}
void function_2()
{
// do something
done = true;
cv.notify_one();
}
```
在这个例子中,function_1 会在 cv 上等待,直到 done 变为 true。当 function_2 中的 done 变为 true 并调用 cv.notify_one() 时,function_1 会被唤醒。
阅读全文