幾種等待併發執行緒全部完成的方法

2021-08-26 10:47:59 字數 535 閱讀 5092

學習到如下幾種方法:

1、對於單個的執行緒,可以採用future.get()的方法,任務執行完畢後才能拿到結果。

2、對於多個執行緒,可以採用executor.awaittemination()的方法,偽**如下所示:

for(int i = 0;i < n;i++){

executor.execute(task(i));

executor.shutdown();

executor.awaittemination(long.max_value,timeunit.seconds);

3、可以採用閉鎖,製造閥門效應,偽**如下所示:

#主線程執行

countdonwlatch done = new countdownlatch(n);

for(int i = 0;i < n;i++){

executor.execute(task(i));

done.await();

#多執行緒任務中執行

dotask(i);

done.countdown();

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

比如,主線程建立執行緒池,提交n個任務,想讓主線程在任務全部結束之後再繼續做其他的事情。public static void main string args system.out.println 呼叫shutdown 方法時,result的值為 result.get executor.shutdo...

執行緒池 超時時間 等待執行緒池中的執行緒完成所有任務

建立乙個固定大小的執行緒池。shutdown 用於關閉啟動執行緒,如果不呼叫該語句,jvm不會關閉。awaittermination 用於等待子執行緒結束,再繼續執行下面的 該例中我設定一直等著子執行緒結束。isterminated當呼叫shutdown 方法後,並且所有提交的任務完成後返回為tru...

等待頁面某元素載入完成的方法

一 先在allocationcommon中寫個方法 等待頁面某元素載入完成 引數 type元素定位型別 by該型別對應的定位值 public static void load string type,string by else if id equals type else if name equa...