建立指定大小,當空閑逾時還會自動銷毀線程的線程池

來源:互聯網
上載者:User

標籤:

WO想要Executor線程池,WO還想要限制線程池大小,WO還想要線程閑置逾時能自動銷毀。

好的~

ThreadPoolExecutor mThreadPool = new ThreadPoolExecutor(poolSize, 0, maxIdleTime, TimeUnit.SECONDS, LinkedBlockingQueue<Runnable>()); // poolSize為線程池大小;maxIdleTime為允許的閑置時間,逾時即毀mThreadPool.allowCoreThreadTimeOut(true); //允許逾時後銷毀線程mThreadPool.execute(Runnable() {    run() {        // OOXXOO    }}

===========================================================

詳細的代碼功能,參見 :

1, Executors.new*ThreadPool()代碼;

2, oracle java 文檔 節選:

  • 排隊:

    1. 直接提交。 SynchronousQueue,它將任務直接提交給線程而不保持它們。在此,?如果不存在可用於立即運行任務的線程,則試圖把任務排入佇列將失敗,因此會構造一個新的線程。?

    2. 無界隊列。使用無界隊列(例如,不具有預定義容量的 LinkedBlockingQueue)將導致在所有 corePoolSize 線程都忙時新任務在隊列中等待。這樣,建立的線程就不會超過 corePoolSize。(因此,maximumPoolSize 的值也就無效了。)

  • 如果希望確保回收取值 (Dereference)的池:設定適當保持啟用時間,使用 0 核心線程的下邊界和/或設定 allowCoreThreadTimeOut(boolean)。


建立指定大小,當空閑逾時還會自動銷毀線程的線程池

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.