執行緒池ExecutorService

2021-07-27 05:43:40 字數 969 閱讀 9241

執行緒池:  任務提交到執行緒池,而不是直接交給某執行緒,執行緒池拿到任務後,它在內部找空閒的執行緒進行執行(封裝),任務是提交給執行緒池,乙個執行緒只能執行乙個任務,但可以同時向乙個執行緒池提交多個任務。

建立固定大小的執行緒池

建立快取執行緒池

如何實現執行緒死掉後重新啟動?

答案:建立單一執行緒池executors.newsinglethreadexecutor();

關閉執行緒池

shutdown()  執行緒池中都處於空閒是結束執行緒池

shutdownnow()執行緒池不管是否有任務在執行都停止

例子://執行緒池

public class threadpool catch (interruptedexception e) }};

executorservice.execute(command);

executorservice.execute(command);

executorservice.execute(command);

executorservice.execute(command);

executorservice.execute(command);

executorservice.shutdown();}}

輸出:1pool-1-thread-1

1pool-1-thread-1

1pool-1-thread-1

1pool-1-thread-1

1pool-1-thread-1

都是乙個執行緒在執行這些任務;在3s執行下乙個

執行緒池啟動定時器

呼叫scheduledexecutorservice的schedule方法,返回的schedulefuture物件可以取消任務。

支援間隔重複任務的定時方式,不直接支援絕對定時方式,需要轉換成相對時間方式。

executors.newschdeduledthreadpool(3).schedule  (....)

執行緒池的實現方式 ExecutorService

使用 threadpoolexecutor 實現執行緒池的建立,有4個不同的構造方法。public threadpoolexecutor int corepoolsize,int maximumpoolsize,long keepalivetime,timeunit unit,blockingque...

執行緒 執行緒池

執行緒池是一種多執行緒處理形式,處理過程中將任務新增到佇列,然後在建立執行緒後執行,主要實現 建立執行緒和管理執行緒,並且給執行緒分配任務。執行緒池中的執行緒是併發執行的。乙個比較簡單的執行緒池至少應包含執行緒池管理器 工作執行緒 任務列隊 任務介面等部分。其中執行緒池管理器的作用是建立 銷毀並管理...

執行緒 執行緒池

乙個簡單執行緒的建立和銷毀如下 與程序程序相比,執行緒是一種輕量級的工具,但是輕量並不代表沒有,它的建立和關閉依然需要花費時間,如果建立和銷毀的時間還大於執行緒本身完成的工作,那就會得不償失,甚至會造成out of memory。即使沒有,大量的執行緒 也會給gc帶來巨大的壓力。為了解決這樣的問題,...