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

忆唐网不做网站做品牌菏砖网站建设

忆唐网不做网站做品牌,菏砖网站建设,南通网站建设开发,广告公司取什么名字好std::condition_variable 和 std::future 的区别: 用途不同: std::condition_variable: 就好比是一把魔法门,有两个小朋友,一个在门这边,一个在门那边。门上贴了一张纸,写着“开心时可以进来…

std::condition_variable 和 std::future 的区别:

用途不同:

std::condition_variable:

就好比是一把魔法门,有两个小朋友,一个在门这边,一个在门那边。门上贴了一张纸,写着“开心时可以进来”。现在,门这边的小朋友要等着看门那边的小朋友什么时候准备好,准备好了就告诉门这边可以进来了。门这边的小朋友就用 std::condition_variable 等待门那边小朋友的通知,门那边小朋友准备好了就通知过来。

std::future:

这就像是委托一个任务给一个小助手。你告诉小助手:“嘿,你去超市买一瓶果汁,等你回来告诉我。”这里,你是主线程,小助手是异步线程,你用 std::future 去拿到小助手的结果,看他是否买到了果汁。

例子:

std::condition_variable:

#include <iostream>
#include <thread>
#include <mutex>
#include <condition_variable>std::mutex mtx;
std::condition_variable cv;
bool isReady = false;void friend1() {std::this_thread::sleep_for(std::chrono::seconds(2));{std::lock_guard<std::mutex> lock(mtx);isReady = true;  // 小朋友在门那边准备好了}cv.notify_one();  // 通知门这边的小朋友
}void friend2() {std::unique_lock<std::mutex> lock(mtx);cv.wait(lock, [] { return isReady; });  // 等待门那边的小朋友通知std::cout << "Friend 2: Let's go inside and play!" << std::endl;
}int main() {std::thread t1(friend1);std::thread t2(friend2);t1.join();t2.join();return 0;
}

std::future:

#include <iostream>
#include <future>int buyJuice() {std::this_thread::sleep_for(std::chrono::seconds(2));return 1;  // 假设小助手成功买到果汁
}int main() {std::future<int> result = std::async(buyJuice);std::cout << "Main thread: Waiting for the assistant to come back with juice..." << std::endl;int juice = result.get();  // 阻塞等待小助手的结果std::cout << "Main thread: Got the juice! It's a refreshing " << juice << std::endl;return 0;
}

为什么不能用条件变量替代期望?

如果我们用 std::condition_variable 代替 std::future,就像用等待通知的方式得知小助手是否买到果汁。这样你就必须一直等着,无法做其他事情。而 std::future 则允许你去做其他事情,等果汁买好了再回来拿。
总的来说,它们分别解决不同的问题,std::condition_variable 用于等待通知,而 std::future 用于异步任务的结果获取。

http://www.yayakq.cn/news/153515/

相关文章:

  • 想学做网站整站优化seo公司哪家好
  • html5网站开发视频广州网络推广奋
  • 珠海舒讯网站建设musik wordpress视频
  • 网站建设的运营计划书动易网站安装子目录中
  • 合肥专业网站优化哪家好seo是搜索引擎优化吗
  • 上海网站制作培训班世界购物平台排行榜
  • 微网站用什么做的属于c2c的网站是
  • 微信设计网站建设wordpress主题图
  • 顺义手机网站设计下载百度地图2022最新版
  • 机关网站建设和运行情况汇报wordpress 流程插件
  • 学校部门网站建设情况汇报品牌建设的三大理论
  • 增城网站建设公司asp网站js悬浮窗怎么做
  • 网站版面布局结构图秦皇岛网站推广报价
  • 微信群投票网站怎么做网站建设推广页
  • 天津市住房和城乡建设厅网站wordpress搜索图标
  • 专门做t恤的网站网站建设业务开展方案
  • 安阳网站自然优化免费发外链平台
  • 海珠做网站公建筑公司网站起名
  • WordPress挂在虚拟站点社交网站源代码
  • 北京专业企业网站建设全国造价工程师管理系统官网
  • 做网站找我们北京建站公司排名首推万维科技
  • 免费发布信息网站大全手机网站免费制作平台有哪些
  • 四线城市做网站建设怎么样app和手机网站的区别
  • 如何将自己做的网站放到网上去wordpress共用用户数据
  • 沈阳网站公司哪个好西宁网站建设建站
  • 一个外国人做汉字网站ip做网站域名
  • 潮流资讯类网站建设策划宠物网站项目
  • 宁波做网站首荐荣盛网络佛山 网站设计公司
  • 中国建设银行个人网站银行浩方网络网站建设
  • 网站服务器有哪些类型有哪些类型有哪些类型有哪些类型wordpress 翻译软件