2016-03-05 27 views
-3

我想分發一些計算到不同的線程。這些計算大部分需要幾行代碼,但需要時間來處理。是否可以將操作作爲參數傳遞而不必聲明全局函數?

爲了便於閱讀,我不想爲每一段代碼都聲明一個全局函數。

是否可以使用類似於以下內容的符號調用線程?

thread t1( 
      for(int i=0;i<largeNumber;i++){ 
       operation1; 
       operation2; 
       ... 
      }        );//End of t1 
//other threads 
t1.join(); 

換句話說,我可以傳遞函數作爲參數,而無需在全局範圍內定義它嗎?

(對不起,如果這是一個基本的問題,我只是找不到合適的詞來搜索)

回答

3

使用lambda函數:

thread t1([]() { // This is lambda 
      for(int i=0;i<largeNumber;i++){ 
       operation1; 
       operation2; 
       ... 
      } });//End of t1 
//other threads 
t1.join(); 
相關問題