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

高埗镇仿做网站米业做网站的好处

高埗镇仿做网站,米业做网站的好处,edm营销,wordpress 导出文章std::future std::future 简介示例1博客引用来源 std::future 简介 我们前面介绍的std::thread 是C11中提供异步创建多线程的工具#xff0c;只能是异步运行任务#xff0c;却无法获取任务执行的结果#xff0c;一般都是依靠全局对象#xff0c;全局对象在多线程下是及其不… std::future std::future 简介示例1博客引用来源 std::future 简介 我们前面介绍的std::thread 是C11中提供异步创建多线程的工具只能是异步运行任务却无法获取任务执行的结果一般都是依靠全局对象全局对象在多线程下是及其不安全的为此标准库提供了std::future类模板来关联线程运行的函数和函数的返回结果这种获取结果的方式是异步的。 本质上线程支持库。 std::futureC 线程支持库 std::future 定义于头文件 future template class T class future;(1) (C11 起) template class T class futureT;(2) (C11 起) template class futurevoid;(3) (C11 起)类模板 std::future 提供访问异步操作结果的机制 通过 std::async 、 std::packaged_task 或 std::promise 创建的异步操作能提供一个 std::future 对象给该异步操作的创建者。然后异步操作的创建者能用各种方法查询、等待或从 std::future 提取值。若异步操作仍未提供值则这些方法可能阻塞。异步操作准备好发送结果给创建者时它能通过修改链接到创建者的 std::future 的共享状态例如 std::promise::set_value 进行。 注意 std::future 所引用的共享状态不与另一异步返回对象共享与 std::shared_future 相反。 引用std::future 示例1 #include iostream #include future #include threadint main() {// 来自 packaged_task 的 futurestd::packaged_taskint() task([](){ return 7; }); // 包装函数std::futureint f1 task.get_future(); // 获取 future//std::cout Done!\nResults are: f1.get() \n;std::thread(std::move(task)).detach(); // 在线程上运行// 来自 async() 的 futurestd::futureint f2 std::async(std::launch::async, [](){ return 8; });//std::cout Done!\nResults are: f2.get() \n;// 来自 promise 的 futurestd::promiseint p;std::futureint f3 p.get_future();std::thread( [p]{ p.set_value_at_thread_exit(9); }).detach();std::cout Waiting... std::flush;f1.wait();f2.wait();f3.wait();std::cout Done!\nResults are: f1.get() f2.get() f3.get() \n; }示例2 #include iostream // std::cout #include future // std::async, std::future #include utility // std::moveint do_get_value() { return 11; }int main () {// 由默认构造函数创建的 std::future 对象,// 初始化时该 std::future 对象处于为 invalid 状态.std::futureint foo, bar;foo std::async(do_get_value); // move 赋值, foo 变为 valid.bar std::move(foo); // move 赋值, bar 变为 valid, 而 move 赋值以后 foo 变为 invalid.if (foo.valid()) {std::cout foos value: foo.get() \n;} else {std::cout foo is not valid\n;}if (bar.valid()) {std::cout bars value: bar.get() \n;} else {std::cout bar is not valid\n;}return 0; }博客引用来源 胖小迪 C 多线程std::future
http://www.dnsts.com.cn/news/43228.html

相关文章:

  • 济南网站建设哪家便宜云南省建设交易中心网站
  • jsp鲜花网站开发源代码网站建设服务公司有哪些
  • 东莞做网站要多少钱著名的响应式网站有哪些
  • 网站模板无忧网络营销推广方案3篇
  • 哪里可以做网站优化做网站要会哪些技术
  • 福州建设注册中心网站微博官网入口
  • jsp网站开发目的及意义企业网站建设合同书
  • 如何自己制作首页网站现在的网站开发方式
  • wordpress 获取文章别名福田网站建设seo信科
  • 网站定位代码北京互联网公司开发的网站
  • 哪些人可以做网站从化做网站开发
  • 域名备案网站wordpress提示插件安装
  • 中力建设网站电子商务实网站的建设课件
  • 做阿里网站的分录建立全国统一的突发事件信息系统的是什么机构
  • 建设外贸网站报价百度经验首页官网
  • 网站服务器租用价格一般多少钱?wordpress装饰主题
  • 保定做网站建设地产平面网站
  • 多网合一网站制作网站公司谁家好
  • 互联网网站制作公司网站开发设计概述
  • 专门做视频的网站吗视频网站如何建设
  • dedecms 获取网站地址速成网站怎么做
  • wordpress建站吗怎么设计公司的网站
  • 网站设计怎么做链接域名注册查询入口
  • 公司电商网站建设方案模板临沂广润网站建设
  • 网站建设后还有什么费用汕头seo排名公司
  • 南宁做网站价格有关网站建设的文章
  • 自媒体自助下单网站怎么做温州网蚁网络科技有限公司
  • 如何做公司自己的网站首页青海保险网站建设公司
  • 网站排名查询软件alexaphp视频网站开发实战
  • 备案价公示网站昆明 网站设计