Java多線程(10) 控制工作群組__Java

來源:互聯網
上載者:User
概述

執行器服務作為線程池,不僅僅可以提高執行任務的效率,還可以控制一組相關任務。例如,可以在執行器中使用shutdownNow方法取消所有的任務。 控制工作群組

java.util.concurrent.ExecutorService T invokeAny(Collection<Callable<T>> tasks)T invokeAny(Collection<Callable<T>> tasks, long timeout,TimeUnit unit)// 執行給定的任務,返回其中一個任務的結果(程式任意一個已完成的結果)。// 第二個方法若發生逾時,拋出一個TimeOutException異常List<Future<T>> invokeAll(Collection<Callable<T>> tasks)List<Future<T>> invokeAll(Collection<Callable<T>> tasks,long timeout, TimeUnit unit)// 執行給定的任務,返回所有的結果。第二個方法若發生逾時,拋出一個Timeout Exception異常java.util.concurrent.ExecutorCompletionService<V>ExecutorCompletionService(Executor e)// 構建一個執行器完成服務來收集給定執行器的結果Future<V> submit(Callable<V> task)Future<V> submit(Runnable task,V result) // 提交一個任務給底層的執行器Future<V> take()// 移除下一個已完成的結果,如果沒有任何已完成的結果可用則阻塞Future<V> poll()Future<V> poll(long time,TimeUnit unit)//移除下一個已完成的結果,如果沒有已完成的結果可用則返回null。第二個方法將等待給定的時間。

PS:其中invokeAll有個特殊的地方就是:如果其建立3個任務,他會建立2個子線程,然後剩下的任務會繼續在本線程去執行。

聯繫我們

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