判斷執行緒是否全部結束

2021-10-04 10:04:55 字數 1314 閱讀 6263

第一種 使用executorservice.isterminated();

executorservice cachedthreadpool = executors.newcachedthreadpool();

cachedthreadpool .submit(new callable()

});cachedthreadpool .submit(new callable()

});cachedthreadpool.shutdown();

while (true)

thread.sleep(100);

}system.out.println("完成");

輸出順序

方法二執行了

方法一執行了

完成

第二種,利用future.get()方法;

executorservice cachedthreadpool = executors.newcachedthreadpool();

//completionservicecompletionservice=new executorcompletionservice(cachedthreadpool);

list> futures=new arraylist<>();

futurefuture = cachedthreadpool .submit(new callable()

});futurefuture2 = cachedthreadpool .submit(new callable()

});futures.add(future);

futures.add(future2);

for (future fut : futures)

cachedthreadpool.shutdown();

system.out.println("完成");

輸出循序一定是

方法二執行了

方法一執行了

方法一返回值

方法二返回值

完成

如果是threadpooltaskexecutor

@autowired

threadpooltaskexecutor threadpooltaskexecutor;

//判斷執行緒是否全部執行結束

while (threadpooltaskexecutor.getactivecount() > 0) catch (interruptedexception e)

}

C 判斷執行緒是否結束Alive

using system using system.collections.generic using system.linq using system.text using system.threading.tasks using system.threading namespace 5006 判...

判斷執行緒是否結束的方法

1 getexitcodethread 比較原始的方法了,呼叫 getexitcodethread,如果返回still active,那就是還在執行,否則,會返回退出 該方法的優點是除了可以判斷是否已經退出,還可以獲取到退出 也就是可以判斷退出原因.該方法在呼叫後,會立即返回,如果需要等待執行緒呼叫...

多執行緒如何判斷全部執行緒是否已經全部結束?

提問者 旺旺 瀏覽次數 1904次 class readfilethread implements runnable public void readfilethread int i catch exception e public void run catch exception e public...