一、執行緒池的優點
說到執行緒池的優點就要先說一下不用執行緒池的壞處
使用執行緒池的好處
二、執行緒池的使用
1.執行緒池的引數
public threadpoolexecutor(int corepoolsize,
int maximumpoolsize,
long keepalivetime,
timeunit unit,
blockingqueueworkqueue,
threadfactory threadfactory,
rejectedexecutionhandler handler)
corepoolsize 核心執行緒數: 預設情況下執行緒在空閒狀態下不會被銷毀,而是一直處於存活狀態。可以通過allowcorethreadtimeout(boolean value)設定核心執行緒超時被**,也就是說當核心執行緒空閒時間超過keepalivetime的時候,就被**了
maximumpoolsize 最大執行緒數:執行緒池中最大的併發執行執行緒數量,因此也引出了非核心執行緒數(非核心執行緒數=最大執行緒數-核心執行緒數)
keepalivetime 執行緒空閒狀態下存活的時間長度:設定存活時間
timeunit 時間單位:可設定毫秒 秒等等
blockingqueue 執行緒佇列:當執行緒數超過核心執行緒數,執行緒就會放到佇列等待執行
threadfactory 執行緒工廠:為執行緒池提供建立新的執行緒的功能
rejectedexecutionhandler 拒絕策略:當執行緒池需要執行的數量超過一定容量(核心執行緒數+執行緒佇列最大長度+非核心執行緒數)時會丟擲rejectedexecutionexception異常
三、執行策略
我們用currentsize表示當前需要執行的執行緒數,用coresize表示核心執行緒數
小結:優先使用核心執行緒,核心執行緒用完了就往執行緒佇列裡塞,執行緒佇列塞滿了再去啟動非核心執行緒,一旦超過了最大執行緒數,就會拋異常。
四、其他建立執行緒池的方法
通過executors直接建立執行緒池,相對於直接new threadpoolexecutor來說,不需要自己設定很多引數,檢視原始碼就能發現其實executors也是對threadpoolexecutor操作的,在現實開發中可以根據業務需求建立不同的執行緒池。
Android執行緒池的使用
一 執行緒池介紹 1.1原理 executor是乙個介面,只有乙個方法void execute runnable command 真正的執行緒的實現為threadpoolexecutor。threadpoolexecutor繼承了abstractexecutorservice,abstractexe...
Android執行緒池
executors jdk1.5之後的乙個新類,提供了一些靜態工廠,生成一些常用的執行緒池,threadpoolexecutor是executors類的底層實現 1.newsinglethreadexecutor 建立乙個單執行緒的執行緒池。這個執行緒池只有乙個執行緒在工作,也就是相當於單執行緒序列...
Android 執行緒池
threadpoolexecutor int corepoolsize,int maximumpoolsize,long keepalivetime,timeunit unit blockingqueueworkqueue,threadfactory threadfactory corepoolsi...