zoukankan      html  css  js  c++  java
  • C++,std::shared_future的使用

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

    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()会等待,这样你得到的返回值就是按顺序得到的。

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

  • 相关阅读:
    数据恢复
    InnoDB LRU优化
    STM32 M0之SPI
    C# 添加日志文件
    VCI_CAN二次开发摘机
    [一点感触]ADF4350 ADF4111混频记
    Linux札记
    C# String与Byte数组的转换
    STM32 CAN
    stm32 F40x CCM数据区的使用
  • 原文地址:https://www.cnblogs.com/xupeidong/p/9851357.html
Copyright © 2011-2022 走看看