shutdown方法:平滑的關閉executorservice,當此方法被呼叫時,executorservice停止接收新的任務並且等待已經提交的任務(包含提交正在執行和提交未執行)執行完成。當所有提交任務執行完畢,執行緒池即被關閉。
awaittermination方法:接收人timeout和timeunit兩個引數,用於設定超時時間及單位。當等待超過設定時間時,會監測executorservice是否已經關閉,若關閉則返回true,否則返回false。一般情況下會和shutdown方法組合使用。
scheduledexecutorservice service = executors.newscheduledthreadpool(4);
service.submit(new task());
service.submit(new task());
service.submit(new longtask());
service.submit(new task());
關閉執行緒池
service.shutdown();
判斷執行緒池是否關閉
while (!service.awaittermination(1, timeunit.seconds))
正確使用執行緒池的姿勢
提示手動建立執行緒池,效果會更好哦。executorservice fixedthreadpool executors.newfixedthreadpool 10 inspection info 執行緒池不允許使用executors去建立,而是通過threadpoolexecutor的方式,這樣的處...
執行緒池 如何正確的關閉執行緒池
在呼叫這個關閉方法時,執行緒池會根據我們配置的拒絕策略來拒絕掉想要進來的執行緒,也就是說吧建立執行執行緒的入口給關閉掉了,直到執行緒池內的所有執行緒都執行完成。在呼叫這個方法完畢之後,並不代表這個執行緒池就真的都停掉了,只能說他不讓其他執行緒進來了,然後等到執行緒池內的執行緒執行完。shutdown...
正確關閉執行緒池
使用10個固定執行緒池建立100個任務 executorservice service executors.newfixedthreadpool 10 for int i 0 i 100 i threadpoolexecutor中關閉執行緒池的方法 shutdown 可以安全地關閉乙個執行緒池,呼叫...