std::condition_variable cv;// 全局条件变量。bool ready=false;// 全局标志位。voidprint_id(int id){std::unique_lock<std::mutex>lck(mtx);// 假设标志位不为 true, 则等待...while(!ready){// 当前线程被堵塞,等待被唤醒。cv.wait(lck);}// 线程被唤醒, 继续往下运行打印线程编号id。std::cout...
std::condition_variable cv; std::mutex cv_m; inti = 0; booldone =false; voidwaits() { std::unique_lock<std::mutex> lk(cv_m); std::cout <<"Waiting... \n"; cv.wait(lk, []{returni == 1;}); std::cout <<"...finished waiting. i == 1\n"; done =true; } voidsignals...
代码回廊 关注博客注册登录 阅读806发布于2023-10-27 Totn 10声望5粉丝 幼稚也没关系,去实践,去经历,去思考! « 上一篇 C++笔记: 运算符重载 下一篇 » C++练手:写一个简单的线程池 引用和评论