C++,std::shared_future的使用

2018-10-26 05:26:09来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

今天给大家分享一个类似多线程任务的方法,具体如下:

std::shared_future<int> tmp = std::async(p1,p2,p3);
int tmpInt = tmp.get();

1、std::future是一个非常有用也很有意思的东西,简单说std::future提供了一种访问异步操作结果的机制。

2、std::async代替线程的创建;

       第一个参数是创建线程的策略(1、std::launch::async:在调用async就开始创建线程;2、std::launch::deferred:延迟加载方式创建线程。调用async时不创建线程,直到调用了future的get或者wait时才创建线程。)

       第二个参数是线程函数

  第三个参数是线程函数参数

3、get()就是用来获取线程返回的结果

总结:

  当你需要并发执行多个任务,但是还要按顺序得到执行的结果,那么future的用途就来了,当你执行std::shared_future<int> tmp = std::async(std::launch::async,p2,p3);会立即创建线程去执行你的任务,然后在你需要的地方调用get()方法获取返回值,如果没有执行完,get()会等待,这样你得到的返回值就是按顺序得到的。

 

大家按照自己的业务去使用,有疑问可以留言。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:c语言中的 strcpy和strncpy字符串函数使用介绍

下一篇:C++链表STL