国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java并發編程(2)--Executor

2019-11-07 23:20:28
字體:
來源:轉載
供稿:網友

一、Executor

java SE5的java.util.concurrent包中的執行器(Executor)將為你管理Thread對象,從而簡化了并發編程。Executor在客戶端和執行任務之間提供了一個間接層,Executor代替客戶端執行任務。Executor允許你管理異步任務的執行,而無須顯式地管理線程的生命周期。

public interface Executor { void execute(Runnable command);}

二、ExcutorService

ExecutorService擴展了Executor并添加了一些生命周期管理的方法。一個Executor的生命周期有三種狀態,運行 ,關閉 ,終止 。

public interface ExecutorService extends Executor { //關閉線程池,不允許新的任務,但正在等待的任務會被執行。 void shutdown(); //關閉線程池,試圖停止正在執行的任務,不允許新的任務,拋棄正在等待的任務并返回。 List<Runnable> shutdownNow(); //線程池是否已經關閉 boolean isShutdown(); //線程池是否終止(所有線程都已經關閉) boolean isTerminated(); //阻塞等待一段時間直到線程池被終止或超時或發生中斷異常 boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException; //提交一個任務,返回任務的future對象,可以知道任務的執行情況 Future<T> submit(Callable<T> task); //同上 Future<T> submit(Runnable task, T result); //同上 Future<?> submit(Runnable task); //批量執行任務,全部執行完再返回 List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException; //批量執行任務,全部執行完或超時了就返回 List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException; //批量執行任務,成功完成一個就返回 T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException; //批量執行任務,成功完成一個或超時就返回 T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException;}

三、ThreadPoolExecutor

ThreadPoolExecutor是ExecutorService的一個實現類,它使用可能的幾個池線程之一執行每個提交的任務,通常使用 Executors 工廠方法配置。

四、Executors

Executors類,提供了一系列工廠方法用于創建線程池,返回的線程池都實現了ExecutorService接口。

public static ExecutorService newFixedThreadPool(int nThreads) 創建固定數目線程的線程池。

public static ExecutorService newCachedThreadPool() 創建一個可緩存的線程池,調用execute 將重用以前構造的線程(如果線程可用)。如果現有線程沒有可用的,則創建一個新線程并添加到池中。終止并從緩存中移除那些已有 60 秒鐘未被使用的線程。

public static ExecutorService newSingleThreadExecutor() 創建一個單線程化的Executor。

public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize) 創建一個支持定時及周期性的任務執行的線程池,多數情況下可用來替代Timer類。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泉州市| 英超| 海原县| 盐津县| 中牟县| 烟台市| 泽州县| 瓦房店市| 大新县| 镇远县| 乌鲁木齐县| 紫云| 徐州市| 嵊州市| 舒兰市| 时尚| 泸溪县| 郎溪县| 庐江县| 吐鲁番市| 闽侯县| 获嘉县| 新营市| 贵州省| 根河市| 缙云县| 武平县| 太原市| 五大连池市| 宜兰市| 罗定市| 肥城市| 汝城县| 古田县| 府谷县| 井冈山市| 乌鲁木齐县| 镇赉县| 屯留县| 瓦房店市| 金平|