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

wordpress打开页面慢湖南seo优化报价

wordpress打开页面慢,湖南seo优化报价,济南网站设计开发,宝安网站设计哪家好std::future std::future 简介示例1博客引用来源 std::future 简介 我们前面介绍的std::thread 是C11中提供异步创建多线程的工具,只能是异步运行任务,却无法获取任务执行的结果,一般都是依靠全局对象,全局对象在多线程下是及其不…

std::future

  • std::future 简介
  • 示例1
  • 博客引用来源

std::future 简介

我们前面介绍的std::thread 是C++11中提供异步创建多线程的工具,只能是异步运行任务,却无法获取任务执行的结果,一般都是依靠全局对象,全局对象在多线程下是及其不安全的,为此标准库提供了std::future类模板来关联线程运行的函数和函数的返回结果,这种获取结果的方式是异步的。
本质上线程支持库。

std::futureC++ 线程支持库 std::future 
定义于头文件 <future>
template< class T > class future;(1)	(C++11 起)
template< class T > class future<T&>;(2)	(C++11 起)
template<>          class future<void>;(3)	(C++11 起)

类模板 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 <thread>int main()
{// 来自 packaged_task 的 futurestd::packaged_task<int()> task([](){ return 7; }); // 包装函数std::future<int> f1 = task.get_future();  // 获取 future//std::cout << "Done!\nResults are: "<< f1.get() << '\n';std::thread(std::move(task)).detach(); // 在线程上运行// 来自 async() 的 futurestd::future<int> f2 = std::async(std::launch::async, [](){ return 8; });//std::cout << "Done!\nResults are: " << f2.get() << '\n';// 来自 promise 的 futurestd::promise<int> p;std::future<int> 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::future<int> 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 << "foo's value: " << foo.get() << '\n';} else {std::cout << "foo is not valid\n";}if (bar.valid()) {std::cout << "bar's value: " << bar.get() << '\n';} else {std::cout << "bar is not valid\n";}return 0;
}

在这里插入图片描述

博客引用来源

  • 胖小迪 C++ 多线程:std::future
http://www.15wanjia.com/news/55021.html

相关文章:

  • 重庆做网站哪家公司好最近10个新闻
  • 网站分哪些种类网站排名软件推荐
  • 国外哪些网站做产品推广比较好贵州二级站seo整站优化排名
  • 湖南网站推广建设公司有哪些网址百度刷排名
  • 远安县住房和城乡建设局网站yw77731域名查询
  • 可以做微积分的网站成都网站seo技术
  • 长春财经学院成都seo优化公司
  • 网站3级营销是怎么做的长沙网站定制公司
  • 天津外贸营销型网站建设公司百度识图网页版在线
  • 印度人通过什么网站做国际贸易如何把品牌推广出去
  • 佛山网站建设哪家便宜谷歌浏览器官网入口
  • 营销型网站设计案例网站生成
  • 做擦边球的网站怎么做自媒体
  • 网站目录链接怎么做的建立网站
  • 做付费推广哪个网站好百度网站推广价格查询
  • 淮南网云小镇的房子可不可以买站长工具seo综合查询推广
  • 怎样做网站关键词优化seo原创工具
  • 免费ppt模板 网站开发网络营销pdf
  • wordpress获取php变量给模板百度提升优化
  • 山东网站建设比较好广州网站设计
  • .net 大型网站开发技术微信营销方式有哪些
  • 做外贸免费的B2B网站目前最新的营销模式有哪些
  • Wordpress 主题简化苏州seo建站
  • 土木在线成都百度搜索排名优化
  • 做电影网站如何推广方案国际新闻最新消息2022
  • flash 如何做游戏下载网站网上电商平台开发
  • 做网站应聘平台郴州网站建设推广公司
  • 中国做机床的公司网站seo推广系统排名榜
  • 网站开发文档怎么写微信指数官网
  • 电商类网站如何做自动化测试电商代运营公司十强