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

陕西建设厅官方网站seo交流网

陕西建设厅官方网站,seo交流网,网站首页html代码在哪,做网站是用什么语言做成的一. std::condition_variable是什么#xff1f; std::condition_variable 是 C 标准库提供的一个线程同步的工具#xff0c;用于实现线程间的条件变量等待和通知机制。 条件变量的发生通常与某个共享变量的状态改变相关。 在多线程编程中#xff0c;条件变量通常和互斥锁…一. std::condition_variable是什么 std::condition_variable 是 C 标准库提供的一个线程同步的工具用于实现线程间的条件变量等待和通知机制。  条件变量的发生通常与某个共享变量的状态改变相关。  在多线程编程中条件变量通常和互斥锁std::mutex一起使用以避免死锁等问题。 二.用法 其常见用法如下 1.定义std::condition_variable对象 std::condition_variable cv; 2.定义一个互斥锁对象 std::mutex m; 3.定义一个bool类型变量作为条件通常与互斥锁一起使用 bool condition false; 4.等待条件变量的通知 std::unique_lockstd::mutex lk(m); while (!condition) {cv.wait(lk); // 释放锁并等待通知 } // 唤醒后继续执行在等待时std::condition_variable::wait()函数会自动释放互斥锁并将线程挂起等待其他线程通过std::condition_variable::notify_one()或std::condition_variable::notify_all()函数发出通知后唤醒线程。 唤醒后std::unique_lock会重新锁定互斥锁线程继续执行。 5.发送条件变量的通知 std::unique_lockstd::mutex lk(m); condition true; cv.notify_one(); // 发送通知在发送通知时必须先获取互斥锁并修改条件变量的状态后才能发送通知。 需要注意的是:  std::condition_variable一般需要和std::unique_lock一起使用以避免竞态条件的出现。       此外线程在等待条件变量时可能会出现虚假唤醒的情况因此应该使用while循环检查条件变量的状态而不是if语句。 三.示例 std::condition_variable的用法通常是与 std::unique_lock std::mutex 一起使用。 可以通过以下步骤来使用 std::condition_variable : 创建std::mutex对象来保护共享资源。创建std::condition_variable对象。在需要等待共享资源的线程中使用std::unique_lock, std::mutex 锁住共享资源并使用std::condition_variable的wait()函数来阻塞线程等待通知。在修改共享资源的线程中修改共享资源并使用std::condition_variable的notify_one()或notify_all()函数来通知等待的线程。等待的线程被唤醒后使用std::unique_lock, std::mutex 锁住共享资源并检查共享资源是否已经被修改。 下面是一个使用std::condition_variable的示例 #include iostream #include thread #include mutex #include condition_variablestd::mutex m; std::condition_variable cv; bool ready false;void worker_thread() {// 等待主线程的信号std::unique_lockstd::mutex lock(m);while(!ready) {cv.wait(lock);}// 做一些工作std::cout Worker thread is working std::endl; }int main() {// 创建工作线程std::thread worker(worker_thread);// 做一些工作std::cout Main thread is doing something std::endl;// 发送信号给工作线程{std::lock_guardstd::mutex lock(m);ready true;}cv.notify_one();// 等待工作线程完成worker.join();return 0; }运行后 在这个例子中主线程和工作线程共享了一个bool型变量ready用来表示工作线程是否可以开始工作。主线程先打印一条消息然后发送信号给工作线程。工作线程在启动后使用std::unique_lock, std::mutex 锁住共享资源ready并在while循环中等待信号。一旦收到信号工作线程就会解锁并开始工作。主线程等待工作线程完成后退出。
http://www.hkea.cn/news/14388507/

相关文章:

  • 蚌埠建设银行网站粤嵌嵌入式培训
  • 网站开发系统的可行性研究报告网站建设公司西安
  • 北京网站建设cnevo莱州网页
  • 网站建设有哪些企业搜索推广图片
  • 做外贸网站公司哪家好wordpress建立cms
  • 烟台H5网站设计莱芜杂谈 莱芜话题
  • 建设门户网站的申请如何做招聘网站的对比
  • 信息网站建设情况工作会上海网站
  • 什么免费推广网站好微应用和微网站的区别是什么
  • 建设银行境外购物网站建立网站就是制作网页对吗
  • 科技公司网站制作公司购物网站英文介绍
  • 中高端网站建设公司都兰县公司网站建设
  • 广州做网站哪家好公司怎么做电影网站吗
  • 电商网站项目建设上海营销平台网站建设
  • 厦门网站建设优化网站开发相关知识
  • 农林网站建设公司网络营销实施计划
  • 网络营销的策划方案外包网络优化
  • 宁波模板建站哪家好查网站排名
  • 南京网站seo建设网站费用记什么科目
  • 装修公司网站 源码海阔淘宝客助手wordpress演示站 | 紫色清新商城模板
  • 青海建设厅职称网站建设协会网站的公司
  • 大连专业网站建设百度ai智能搜索引擎
  • 工程建设网站策划方案广东建设厅证件查询网站
  • 外贸公司 网站自己怎么做wap网站
  • 百度公司网站推广怎么做做招聘海报的网站
  • 郑州pc网站开发湖北省工程建设信息官方网站
  • 佛山北京网站建设公司哪家好025网站建设
  • 医院网站可以自己做吗wordpress怎么压缩
  • 河南国安建设集团有限公司网站可以显示文章列表的wordpress主题
  • 邢台建设专业网站宿州网站建设电话