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

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

  • 相关阅读:
    接口缓存--把接口放在redis数据库中,减少访问量
    使用vue和drf后台进行登录页面和注册页面(本文大概的疏通一下前后台是怎么交互的)
    vue导入css,js和放置html代码
    存储过程
    触发器
    视图
    pymysql模块使用
    权限管理
    多表数据查询
    单表数据查询
  • 原文地址:https://www.cnblogs.com/xupeidong/p/9851357.html
Copyright © 2020-2023  润新知