第一種 使用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...