一、std::condition_variable
这玩意儿怎么使用呢
有个条件儿
它需要配合 mutex 来使用 std::unique_lock 进行上锁 / 解锁
它需要配合 mutex 来使用 std::unique_lock 进行上锁 / 解锁
它需要配合 mutex 来使用 std::unique_lock 进行上锁 / 解锁
当 std::condition_variable 对象调用 wait() 时, 它就使用 std::unique_lock 锁住当前线程
直到另外一个线程使用同一个 std::condition_variable 对象调用 notification 才会唤醒锁住线程
先来感性认识一下如何使用 std::condition_variable 的
二、简单例子
#include <iostream>
#include <thread>
#include <atomic>
#include <condition_variable>
#include <mutex>
std::mutex _mutex; /*线程锁*/
std::condition_variable cv; /*条件变量*/
std::atomic_int productCnt = 0; /*公共变量,产品库存数量*/
std::atomic_bool isReady = false; /*公共变量,防止假性唤醒线程*/
/*生产产品*/
void Fu