多執行緒等待任務結束的幾種方法

2022-07-12 13:24:10 字數 966 閱讀 8558

比如,主線程建立執行緒池,提交n個任務,想讓主線程在任務全部結束之後再繼續做其他的事情。

public static void main(string args) );

}system.out.println("呼叫shutdown()方法時,result的值為:" + result.get());

executor.shutdown();

try catch (interruptedexception e)

system.out.println("計算完成,result的值為:" + result.get() + ",可以繼續處理其他事情了");

}

public static void main(string args) );

}system.out.println("呼叫shutdown()方法時,result的值為:" + result.get());

executor.shutdown();

try catch (interruptedexception e)

system.out.println("計算完成,result的值為:" + result.get() + ",可以繼續處理其他事情了");

}

適用於知道任務的數量,因為countdownlatch在建立時就要指定其大小,並且不能重新初始化。

//todo:countdownlatch是否會禁止指令重排序?(從官方的例子看,會!有待研究)

public void example()  catch (interruptedexception e1) 

}class workerrunnable implements runnable

public void run()

void dowork(int i)

}

//todo

實現多執行緒的幾種方法

一。通過繼承thread類實現多執行緒 繼承thread類,並覆蓋父類的run 方法。如下例子 public class mythread extends thread override public void run 二。通過實現runnable介面實現多執行緒 實現runnable介面,並實現父...

多執行緒 一 建立執行緒的幾種方法

一般有兩種建立runnable例項的方法 1 實現runnable介面,實現裡面的run方法,扔個thread類,然後start 2 也可以建立futuretask類的例項,因為futuretask實現了runnablefuture介面 繼承自runnable介面 futuretask建構函式中這裡...

iOS 建立多執行緒的幾種方法

nsthread 多執行緒方式1 例項方法 nsthread thread1 nsthread alloc initwithtarget self selector selector threadaction1 object nil 啟動執行緒 需要啟動執行緒 thread1 start 多執行緒方...