[問題] std::promise的疑問

作者: Clangpp (Clang++)   2018-01-27 14:41:21
小弟我在研究C++11的std::promise
找到這篇文章
http://thispointer.com/c11-multithreading-part-8-stdfuture-stdpromise-and-returning-values-from-thread/
然後根據他的範例code操作
範例code如下
#include <iostream>
#include <thread>
#include <future>
void initiazer(std::promise<int> * promObj)
{
std::cout<<"Inside Thread"<<std::endl; promObj->set_value(35);
}
int main()
{
std::promise<int> promiseObj;
std::future<int> futureObj = promiseObj.get_future();
std::thread th(initiazer, &promiseObj);
std::cout<<futureObj.get()<<std::endl;
th.join();
return 0;
}
但是在單步執行產生了疑問,為什麼在th建構階段時就可以讓future取得value了??
我一直以為要到join的階段
懇請各位版友解惑
謝謝
作者: steve1012 (steve)   2018-01-27 16:07:00
有設定值以後就可以讀了 你是想要問哪部分你期待的output是啥?future::get是blocking call http://en.cppreference.com/w/cpp/thread/future/get網址沒貼好 在這裡 https://goo.gl/cH4g2A

Links booklink

Contact Us: admin [ a t ] ucptt.com