C C 程式設計 獲取執行緒的返回值

2021-10-08 07:54:02 字數 1109 閱讀 7097

1、在主線程中建立std::promise物件

std:

:promise<

int>

promiseobj;

上面定義的promise物件還沒有任何關聯的值。但是它承諾某個執行緒將會設定與其關聯的值,並且,當值被設定以後,可以通過與promise關聯的std::future物件來獲取該值。

假設我們的主線程將建立的std::promise物件傳遞給了壓縮執行緒,那主線程要怎麼知道壓縮執行緒已經設定好了值呢?

答案就是使用 std::future物件

// main thread

std:

:future<

int>

futureobj = promiseobj.

get_future()

;int val = futureobj.

get();

// compression thread

promiseobj.

set_value(45

);

compression thread未執行**set_value()**時,如果主線程呼叫了futureobj.get(),那麼主線程將會被阻塞。

看整個時序圖:

Python 獲取多執行緒獲取返回值

1.通過重寫thread類,自定義乙個get result 方法 重新定義帶返回值的執行緒類 from threading import thread from time import sleep,time class mythread thread def init self,func,args ...

Python多執行緒獲取返回值

在使用多執行緒的時候難免想要獲取其操作完的返回值進行其他操作,下面的方法以作參考 一,首先重寫threading類,使其滿足呼叫特定的方法獲取其返回值 import threading class mythread threading.thread 重寫多執行緒,使其能夠返回值 def init s...

Python多執行緒獲取返回值

在使用多執行緒的時候難免想要獲取其操作完的返回值進行其他操作,下面的方法以作參考 一,首先重寫threading類,使其滿足呼叫特定的方法獲取其返回值 import threadingclass mythread threading.thread 重寫多執行緒,使其能夠返回值 def init se...