1.初識執行緒池:
根據系統自身的環境情況,有效的限制執行執行緒的數量,使得執行效果達到最佳。執行緒主要是通過控制執行的執行緒的數量,超出數量的執行緒排隊等候,等待有任務執行完畢,再從佇列最前面取出任務執行。
2.執行緒池作用:
減少建立和銷毀執行緒的次數,每個工作執行緒可以多次使用
可根據系統情況調整執行的執行緒數量,防止消耗過多記憶體
3.使用
executorservice:執行緒池介面
executorservice pool = executors.常見執行緒
eg:executorservice pool = executors.newsinglethreadexecutor();
4.常見執行緒池
①newsinglethreadexecutor
單個執行緒的執行緒池,即執行緒池中每次只有乙個執行緒工作,單執行緒序列執行任務
②newfixedthreadexecutor(n)
固定數量的執行緒池,沒提交乙個任務就是乙個執行緒,直到達到執行緒池的最大數量,然後後面進入等待佇列直到前面的任務完成才繼續執行
③newcachethreadexecutor(推薦使用)
可快取執行緒池,當執行緒池大小超過了處理任務所需的執行緒,那麼就會**部分空閒(一般是60秒無執行)的執行緒,當有任務來時,又智慧型的新增新執行緒來執行。
④newschedulethreadexecutor
大小無限制的執行緒池,支援定時和週期性的執行執行緒
executorservice executorservice=executors.newfixedthreadpool(5); // 建立executorservice 連線池建立固定的10個初始執行緒
executorservice.execute(new runnable() catch (exception e)
}});
執行緒池的用法及配置
1.直接掉用 threadpooltaskexecutor pooltaskexecutor newthreadpooltaskexecutor 執行緒池所使用的緩衝佇列 pooltaskexecutor.setqueuecapacity 200 執行緒池維護執行緒的最少數量 pooltaskexe...
執行緒 執行緒池
執行緒池是一種多執行緒處理形式,處理過程中將任務新增到佇列,然後在建立執行緒後執行,主要實現 建立執行緒和管理執行緒,並且給執行緒分配任務。執行緒池中的執行緒是併發執行的。乙個比較簡單的執行緒池至少應包含執行緒池管理器 工作執行緒 任務列隊 任務介面等部分。其中執行緒池管理器的作用是建立 銷毀並管理...
執行緒 執行緒池
乙個簡單執行緒的建立和銷毀如下 與程序程序相比,執行緒是一種輕量級的工具,但是輕量並不代表沒有,它的建立和關閉依然需要花費時間,如果建立和銷毀的時間還大於執行緒本身完成的工作,那就會得不償失,甚至會造成out of memory。即使沒有,大量的執行緒 也會給gc帶來巨大的壓力。為了解決這樣的問題,...