java5之後建立線程池的幾個API 以及區別

來源:互聯網
上載者:User

newCachedThreadPool();

newCachedThreadPool(ThreadFactory factory);

建立一個可根據需要建立新線程的線程池,但是在之前構造的線程可用時將重用它們。對於執行很多短期非同步任務的程式而言,這些線程池通常可提高程式效能。調用 execute 將重用之前構造的線程(如果線程可用)。如果現有線程沒有可用的,則建立一個新線程並添加到池中。終止並從緩衝中移除那些已有 60 秒鐘未被使用的線程。因此,長時間保持閒置線程池不會使用任何資源。注意,可以使用 ThreadPoolExecutor 構造方法建立具有類似屬性但細節不同(例如逾時參數)的線程池。 

 

newFixedThreadPool(int nThreads);

newFixedThreadPool(int nThreads,ThreadFactory threadFactory);

建立一個可重用固定線程數的線程池,以共用的無界隊列方式來運行這些線程,在需要時使用提供的 ThreadFactory 建立新線程。在任意點,在大多數 nThreads 線程會處於處理任務的活動狀態。如果在所有線程處於活動狀態時提交附加任務,則在有可用線程之前,附加任務將在隊列中等待。如果在關閉前的執行期間由於失敗而導致任何線程終止,那麼一個新線程將代替它執行後續的任務(如果需要)。在某個線程被顯式地關閉之前,池中的線程將一直存在。  

 

newScheduledThreadPool(int nThreads);

newScheduledThreadPool(int nThreads,ThreadFactory threadFactory);

使用給定核心池大小建立一個新 ScheduledThreadPoolExecutor。該線程池的特性就是能夠指定  初始延遲 、固定頻率、固定延遲。來執行一個線程。返回的對象為ScheduledExecuteService,增加了定時器的操作,有以下幾個方法:  

 

<V> ScheduledFuture<V>
schedule(Callable<V> callable, long delay, TimeUnit unit)
          建立並執行在給定延遲後啟用的 ScheduledFuture。
 ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit)
          建立並執行在給定延遲後啟用的一次性操作。
 ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
          建立並執行一個在給定初始延遲後首次啟用的定期操作,後續操作具有給定的周期;也就是將在 initialDelay 後開始執行,然後在 initialDelay+period 後執行,接著在 initialDelay + 2 * period 後執行,依此類推。
 ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)
          建立並執行一個在給定初始延遲後首次啟用的定期操作,隨後,在每一次執行終止和下一次執行開始之間都存在給定的延遲。

 

newSingleThreadExecutor();

newSingleThreadExecutor(ThreadFactory factory);

建立一個使用單個 worker 線程的 Executor,以無界隊列方式來運行該線程。單線程池的好處就是:如果線程在任務執行完之前被系統殺死,線上程結束之前,該線程池會建立一個新的線程來代替其執行任務。可保證順序地執行各個任務,並且在任意給定的時間不會有多個線程是活動的。與其他等效的 newFixedThreadPool(1) 不同,可保證無需重新設定此方法所返回的執行程式即可使用其他的線程。 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.