摘要:接口用于提交任務接口繼承了接口設置線程的狀態(tài),還沒執(zhí)行的線程會被中斷設置線程的狀態(tài),嘗試停止正在進行的線程當調(diào)用或方法后返回為當調(diào)用方法后,并且所有提交的任務完成后返回為當調(diào)用方法后,成功停止后返回為當前線程阻塞,直到線程執(zhí)行完時間到被中斷
Executor接口
void execute(Runnable command)//用于提交command任務ExecutorService接口
繼承了Executor接口
//設置線程的狀態(tài),還沒執(zhí)行的線程會被中斷 void shutdown(); //設置線程的狀態(tài),嘗試停止正在進行的線程 ListshutdownNow(); //當調(diào)用shutdown()或shutdownNow()方法后返回為true boolean isShutdown(); //當調(diào)用shutdown()方法后,并且所有提交的任務完成后返回為true //當調(diào)用shutdownNow()方法后,成功停止后返回為true; boolean isTerminated(); //當前線程阻塞,直到線程執(zhí)行完、時間到、被中斷 boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException; //提交一個Callable任務 Future submit(Callable task); //提交一個Runnable任務,因為Runnable沒有返回指,所以第二個參數(shù)是用來返回值 Future submit(Runnable task, T result); //提交一個Runnable任務 Future> submit(Runnable task); //執(zhí)行所有任務 List > invokeAll(Collection extends Callable > tasks) throws InterruptedException; //執(zhí)行所有任務,有過期時間 List > invokeAll(Collection extends Callable > tasks, long timeout, TimeUnit unit) throws InterruptedException; //有一個任務結(jié)束就可以返回 T invokeAny(Collection extends Callable > tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException; //有一個任務結(jié)束就可以返回,有過期時間 T invokeAny(Collection extends Callable > tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException;
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/75686.html
摘要:系統(tǒng)預定了幾個線程池,不過建議手動創(chuàng)建,以防止錯誤創(chuàng)建消耗資源,比如創(chuàng)建太多線程或者固定線程數(shù)量,無界隊列固定線程數(shù)量,數(shù)量為,無界隊列,會按順序執(zhí)行不限制線程數(shù)量,使用隊列,使用于短任務基于用于周期性執(zhí)行任務示例第一個是,第二個是第一 系統(tǒng)預定了幾個線程池,不過建議手動創(chuàng)建,以防止錯誤創(chuàng)建消耗資源,比如創(chuàng)建太多線程或者OOM FixedThreadPool 固定線程數(shù)量,無界隊列 p...
摘要:有三種狀態(tài)運行關(guān)閉終止。類類,提供了一系列工廠方法用于創(chuàng)建線程池,返回的線程池都實現(xiàn)了接口。線程池的大小一旦達到最大值就會保持不變,在提交新任務,任務將會進入等待隊列中等待。此線程池支持定時以及周期性執(zhí)行任務的需求。 這是java高并發(fā)系列第19篇文章。 本文主要內(nèi)容 介紹Executor框架相關(guān)內(nèi)容 介紹Executor 介紹ExecutorService 介紹線程池ThreadP...
摘要:抽象類,實現(xiàn)了的接口。將任務封裝成提交任務主要方法在任務是否超時超時時間任務書用于存放結(jié)果的,先完成的放前面。 AbstractExecutorService抽象類,實現(xiàn)了ExecutorService的接口。 newTaskFor 將任務封裝成FutureTask protected RunnableFuture newTaskFor(Runnable runnable, T va...
摘要:線程的啟動與銷毀都與本地線程同步。操作系統(tǒng)會調(diào)度所有線程并將它們分配給可用的??蚣艿某蓡T主要成員線程池接口接口接口以及工具類。創(chuàng)建單個線程的接口與其實現(xiàn)類用于表示異步計算的結(jié)果。參考書籍并發(fā)編程的藝術(shù)方騰飛魏鵬程曉明著 在java中,直接使用線程來異步的執(zhí)行任務,線程的每次創(chuàng)建與銷毀需要一定的計算機資源開銷。每個任務創(chuàng)建一個線程的話,當任務數(shù)量多的時候,則對應的創(chuàng)建銷毀開銷會消耗大量...
摘要:示例執(zhí)行一批任務,然后消費執(zhí)行結(jié)果代碼如下跟著阿里學并發(fā),微信公眾號輸出代碼中傳入了一批任務進行處理,最終將所有處理完成的按任務完成的先后順序傳遞給進行消費了。 這是java高并發(fā)系列第20篇文章。 本文內(nèi)容 ExecutorCompletionService出現(xiàn)的背景 介紹CompletionService接口及常用的方法 介紹ExecutorCompletionService類及...
閱讀 1633·2021-11-11 10:59
閱讀 2644·2021-09-04 16:40
閱讀 3681·2021-09-04 16:40
閱讀 3000·2021-07-30 15:30
閱讀 1678·2021-07-26 22:03
閱讀 3177·2019-08-30 13:20
閱讀 2243·2019-08-29 18:31
閱讀 452·2019-08-29 12:21