建立乙個固定大小的執行緒池。
shutdown():用於關閉啟動執行緒,如果不呼叫該語句,jvm不會關閉。
awaittermination():用於等待子執行緒結束,再繼續執行下面的**。該例中我設定一直等著子執行緒結束。
isterminated當呼叫shutdown()方法後,並且所有提交的任務完成後返回為true
interrupt() 與 cancel()的區別
兩者實際上都是中斷執行緒,但是後者更安全、有條理和高效,其原因跟推薦使用executor而不直接使用thread類是一致的。所以結合上面講到的原則,我們應盡量採用cancel()方法,呼叫執行緒管理器executorservice介面的submit(runnable task) 方法會返回乙個future>物件,然後呼叫future.cancel()的方法來取消任務,並返回乙個boolean值。
1.測試執行緒類
2.測試isterminated()的作用package com.fullrich.pay.batch.task;
class task implements runnable
public void run() catch (interruptedexception e) }}
2.測試awaittermination()的作用public static void main(string args) catch(exception e)
}fixedthreadpool.shutdown();
//2.等待執行緒全部執行完畢以後會輸出主線程執行完畢
while(true)}}
public static void main(string args) catch(exception e)
}fixedthreadpool.shutdown();
//所有執行緒在3s內執行完畢後會輸出主線程執行完畢否則中斷超時任務
try else }}
} catch (interruptedexception e)
}
java執行緒池主線程等待子執行緒執行完成
今天討論乙個入門級的話題,不然沒東西更新對不起空間和網域名稱 工作總往往會遇到非同步去執行某段邏輯,然後先處理其他事情,處理完後再把那段邏輯的處理結果進行彙總的產景,這時候就需要使用執行緒了.乙個執行緒啟動之後,是非同步的去執行需要執行的內容的,不會影響主線程的流程,往往需要讓主線程指定後,等待子執...
java執行緒池和關閉執行緒池中的執行緒
如果執行緒經常喜歡去new的話是不對的,你需要乙個池子管理。newcachedthreadpool 這個乙個帶快取的執行緒池,是個可以無限大的執行緒池,新建的執行緒放倒這個池子裡,當執行緒停掉了的時候,下個個執行緒進來,可以復用這個執行緒。newfixedthreadpool 是個有長度的執行緒池,...
Python等待所有執行緒任務完成
import threading import time import random def takesleep id,name print name id 執行緒開始執行.time.sleep random.randint 0,3 print name id 執行緒任務結束 print 主程式開始...