Android執行緒池的使用

2021-09-26 04:30:38 字數 1326 閱讀 7100

一、執行緒池的優點

說到執行緒池的優點就要先說一下不用執行緒池的壞處

使用執行緒池的好處

二、執行緒池的使用

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...