建立執行緒的幾種方式

2021-10-23 17:30:24 字數 659 閱讀 2164

class a ;

int operator()(int n)

};void foo(int x){}

int main() , 6); //lambda表示式

thread t7(&a::f, a, 8, 'w'); //傳遞a的拷貝的成員函式給子執行緒

thread t8(&a::f, &a, 8, 'w'); //傳遞a的位址的成員函式給子執行緒

futurefu = async(launch::async, &a::f, &a, 6); //呼叫async函式的時候就開始建立新執行緒

fu.get(); // 阻塞 等待執行緒fu結束

futurefu1 = async(launch::deferred, &a::f, &a, 6); // launch::deferred表示延遲呼叫

fu1.get(); //get()函式時,才執行入口函式

futurefu2 = async(launch::async | launch::deferred, &a::f, &a, 6); // 可能建立新執行緒,也可能延遲呼叫 都加和不加一樣

futurefu3 = async(&a::f, &a, 6);

fu2.get();

fu3.get();

}

建立執行緒的幾種方式

thread,runnable,callable runnable和callable的區別是,1 callable規定的方法是call runnable規定的方法是run 2 callable的任務執行後可返回值,而runnable的任務是不能返回值得 3 call方法可以丟擲異常,run方法不可以...

建立執行緒的幾種方式

建立執行緒有四種方式 1.繼承thread類 public class mythread00 extends thread public static void main string args 2.實現runnable介面 public class mythread01 implements ru...

建立執行緒的方式 執行緒建立到底有幾種方式?

在網上搜尋執行緒建立的集中方式,大約都是多的三種或者四種,我們看下jdk的原始碼怎麼說的?原始碼中說的建立執行緒有兩種方式類thread和介面runable 網上第三種 實現callable介面,結合futuretask建立執行緒,這種方式我們檢視原始碼也可以看出它實際上也屬於實現runable介面...