您好,登錄后才能下訂單哦!
這篇文章給大家介紹怎么在java中使用ThreadPoolExecutor創建一個線程池,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
Java主要應用于:1. web開發;2. Android開發;3. 客戶端開發;4. 網頁開發;5. 企業級應用開發;6. Java大數據開發;7.游戲開發等。
1.創建參數
線程池可以自動創建也可以手動創建,手動創建體現在可以靈活設置線程池的各個參數。
corePoolSize:線程池的核心線程數,說白了就是,即便是線程池里沒有任何任務,也會有corePoolSize個線程在候著等任務。
maximumPoolSize:最大線程數,不管你提交多少任務,線程池里最多工作線程數就是maximumPoolSize。
keepAliveTime:線程的存活時間。當線程池里的線程數大于corePoolSize時,如果等了keepAliveTime時長還沒有任務可執行,則線程退出。
unit:這個用來指定keepAliveTime的單位,比如秒:TimeUnit.SECONDS。
七種靜態屬性
TimeUnit.DAYS; //天 TimeUnit.HOURS; //小時 TimeUnit.MINUTES; //分鐘 TimeUnit.SECONDS; //秒 TimeUnit.MILLISECONDS; //毫秒 TimeUnit.MICROSECONDS; //微妙 TimeUnit.NANOSECONDS; //納秒
workQueue:一個阻塞隊列,提交的任務將會被放到這個隊列里:
ArrayBlockingQueue;
LinkedBlockingQueue;
SynchronousQueue;
threadFactory:線程工廠,用來創建線程,主要是為了給線程起名字,默認工廠的線程名字:pool-1-thread-3。
handler:拒絕策略,當線程池里線程被耗盡,且隊列也滿了的時候會調用。
2.創建實例
public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue) { this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, Executors.defaultThreadFactory(), defaultHandler); }
關于怎么在java中使用ThreadPoolExecutor創建一個線程池就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。