侧边栏壁纸
  • 累计撰写 75 篇文章
  • 累计创建 15 个标签
  • 累计收到 1 条评论
C++

C++11 多线程操作

秋山人家
2020-04-10 / 0 评论 / 0 点赞 / 3,680 阅读 / 0 字
温馨提示:
本文最后更新于 2020-04-10,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
#include <thread>
#include <future>

using namespace std;

void test(promise<int> &promiseObj)
{
    cout<<"test"<<endl;
    promiseObj.set_value(100); //设置函数返回值
}

void main()
{
    promise<int> promiseObj;
    thread threadObj;
    threadObj = thread(test,ref(promiseObj)); //ref(promiseObj)为执行函数test的入参
    threadObj.join() //主线程等待子线程结束。
    /**
    threadObj.detach() //主线程与子线程分离,主线程不等待子线程结束。
    **/
    int count = promiseObj.get_future().get();//从子线程中获取返回值
}
0

评论区