Condition Variables and Worker Patterns
Coordinate threads with std::condition_variable and the classic worker pool pattern.
What is a Condition Variable?
A condition variable lets a thread wait until another thread signals that a condition has changed. Used to coordinate producers and consumers.
std::condition_variable Basics
A condition variable works with a std::mutex and a predicate. The waiting thread releases the lock while waiting and re-acquires it on wake.
#include <condition_variable>
#include <mutex>
#include <queue>
std::mutex mtx;
std::condition_variable cv;
std::queue<int> tasks;
bool done = false;All lessons in this course
- std::thread Joining and Detaching
- std::mutex lock_guard and unique_lock
- Condition Variables and Worker Patterns
- std::async and std::future Basics