当前位置: 首页 > news >正文

专题网站搭建漳州市建设局网站6

专题网站搭建,漳州市建设局网站6,网站后台seo优化如何做,公司制作网站怎么做的条件变量通常与互斥锁一起使用,用于线程间的同步。以下是条件变量常用的一些函数: ①std::condition_variable::wait(lock, pred):线程调用此函数时,会原子性地释放锁并阻塞当前线程,等待另一个线程调用 notify_one 或…

条件变量通常与互斥锁一起使用,用于线程间的同步。以下是条件变量常用的一些函数:

①std::condition_variable::wait(lock, pred):线程调用此函数时,会原子性地释放锁并阻塞当前线程,等待另一个线程调用 notify_one 或 notify_all 来通知。pred 是一个可选的谓词,用于额外的条件检查,如果传入 pred,则当条件不满足时线程会继续等待。当被通知后,wait 函数会重新获取锁。

②std::condition_variable::notify_one:通知一个等待在条件变量上的线程,使得其中一个线程被唤醒,继续执行,通常当对共享资源作出改变后调用该函数。

③std::condition_variable::notify_all:通知所有等待在条件变量上的线程,使得全部线程被唤醒,继续执行。

这些函数通常会和互斥锁(std::mutex)一起使用,例如:

std::unique_lock<std::mutex> lock(mtx);
cv.wait(lock, []{ return ready; });  // 等待 ready 变成 true
// 使用lambda表达式

这里 cv 表示 std::condition_variable,mtx 表示 std::mutex,ready 是一个共享的条件,用于控制线程的同步。

举个见到的例子。

#include <iostream>
#include <thread>
#include <mutex>
#include <condition_variable>
#include <queue>std::queue<int> q;
std::mutex mtx;
std::condition_variable cv;using namespace std;
void producer() {for (int i = 0; i < 10; ++i) {std::unique_lock<std::mutex> lock(mtx);q.push(i);std::cout << "Producing " << i << std::endl;lock.unlock();cv.notify_one(); // 通知消费者std::this_thread::sleep_for(std::chrono::milliseconds(100)); // 为了方便观察,加入延迟}
}void consumer() {for (int i = 0; i < 10; ++i) {std::unique_lock<std::mutex> lock(mtx);cv.wait(lock, []{ return !q.empty(); }); // 等待直到队列不为空std::cout << "Consuming " << q.front() << std::endl;q.pop();}
}int main() {std::thread producerThread(producer);std::thread consumerThread(consumer);producerThread.join();consumerThread.join();return 0;
}

结果是:

./a.out 
Producing 0
Consuming 0
Producing 1
Consuming 1
Producing 2
Consuming 2
Producing 3
Consuming 3
Producing 4
Consuming 4
Producing 5
Consuming 5
Producing 6
Consuming 6
Producing 7
Consuming 7
Producing 8
Consuming 8
Producing 9
Consuming 9
http://www.yayakq.cn/news/86713/

相关文章:

  • 网络网站关键词阿里云怎么安装wordpress
  • 网站上线前要做哪些准备html制作一个网页
  • 电脑怎么创建网站吗网络营销推广的概念
  • 网站建设与管理题库免费开店的平台有哪些
  • 网站建设衡水wordpress 优化数据
  • 企业网站销售建设cpa网站需要什么
  • 做网站保存什么格式最好爱采购卖家版下载
  • 米思米网站订单取消怎么做世界各国o2o响应式网站
  • 外贸网站经典营销案例网站建设与维护书
  • 在centos做网站网站备案网站建设方案书
  • 网站建设文化平台wordpress菜单栏竖排
  • 企业网站的建立主要用于企业内部发布信息外卖做的比较好的网站
  • 网站设计制作的服务机构网页游戏传奇开服表
  • 前端外包网站网站建设推广合同书
  • 咸阳做网站的网站备案域名更改吗
  • 陇南网站网站建设常州企业建站系统
  • 汕头网站建设推荐贵阳企业免费建站
  • 企业网站建设算什么费用建设项目环评在什么网站公示
  • 徐州网站建设找哪家好协同办公oa
  • 江阴外贸网站建设公司佛山网站设计电话
  • 辽宁公司网站建设安阳seo
  • 长沙手机模板建站wordpress cufon
  • 织梦网站所有图片不显示百度不收录手机网站吗
  • 深圳网站制作建设服务公司企业应该如何进行网站推广
  • 做网站空间 阿里云为什么有网络却打不开网页
  • 网站seo解决方案外国的网站是什么网站
  • 北海网站建设公司微信怎么做网站的动图
  • 网站集群建设参数wordpress 下载选择
  • 中医网站建设素材装饰公司网页设计
  • 建html5响应式网站的工具做外汇的人一般看什么网站