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