[問題] std::promise的疑問

看板C_and_CPP作者 (Clang++)時間7年前 (2018/01/27 06:41), 編輯推噓2(203)
留言5則, 1人參與, 7年前最新討論串1/1
小弟我在研究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的階段 懇請各位版友解惑 謝謝 -- 起初,航艦戰鬥群肆虐洋面,神的靈行走在水面上。神說,要有飛彈!於是就有了KS-1 神看這東西不頂事,於是著俄國人發展出了很多種反艦飛彈。神說,飛彈要導引,還要 有人工智慧。神說,飛彈需要載機載艦,神看著這是好的。神說,飛彈需要獲得目標, 於是有敢死雷達機。神說,天上要有核子動力人造衛星。神說,要在巴倫支海進行九十 秒內百枚飛彈彈著演習。神看著這是好的,就歇了他一切的工、安息了。 美國海軍感到敬畏,於是推出了神盾戰鬥系統。 神說:F... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.68.172.54 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1517035290.A.749.html

01/27 16:07, 7年前 , 1F
有設定值以後就可以讀了 你是想要問哪部分
01/27 16:07, 1F

01/27 16:08, 7年前 , 2F
你期待的output是啥?
01/27 16:08, 2F

01/27 16:13, 7年前 , 3F
future::get是blocking call http://en.cppreference.c
01/27 16:13, 3F

01/27 16:13, 7年前 , 4F
om/w/cpp/thread/future/get
01/27 16:13, 4F

01/27 16:14, 7年前 , 5F
網址沒貼好 在這裡 https://goo.gl/cH4g2A
01/27 16:14, 5F
文章代碼(AID): #1QR1yQT9 (C_and_CPP)