Android开发线程池管理类之ThreadPoolExecutor工具类
生活随笔
收集整理的這篇文章主要介紹了
Android开发线程池管理类之ThreadPoolExecutor工具类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
平常開發中網絡請求自從Android4.0后強制要求放到子線程中避免主線程進行網絡請求,一般很多人習慣直接通過new Thread的方法。不建議這樣使用。我們用ThreadPoolExecutor線程池這個類創建比較好。所以有了下面的線程池工具類。
先來張JDK1.6的中文參數說明
package com.xiayiye.honorfirst.utils;import java.util.concurrent.BlockingQueue; import java.util.concurrent.Executors; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit;/*** @author xiayiye* 線程池工具*/ public class ThreadUtils {/*** 根據cup核心數設置線程池數量*/private static int corePoolSize = Runtime.getRuntime().availableProcessors();/*** 最大線程池數量= cpu核心數*2+1*/private static int maximumPoolSize = corePoolSize * 2 + 1;/*** 等待線程的存活時間*/private static long keepAliveTime = 1;/*** 等待線程存活時間的單位*/private static TimeUnit unit = TimeUnit.HOURS;/****/private static BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<>();/*** 默認的線程工廠*/private static ThreadFactory threadFactory = Executors.defaultThreadFactory();/*** 取消策略,當超過等待線程池的數量后禁止添加了*/private static RejectedExecutionHandler handler = new ThreadPoolExecutor.AbortPolicy();private static ThreadPoolExecutor executor;/*** 開啟線程池** @param runnable runnable*/public static void startThread(Runnable runnable) {executor = new ThreadPoolExecutor(corePoolSize,maximumPoolSize,keepAliveTime, unit,workQueue,threadFactory,handler);executor.execute(runnable);}/*** 取消線程池** @param runnable runnable*/public static void cancelThread(Runnable runnable) {if (null == runnable || executor == null) {return;}executor.remove(runnable);} }?
調用就更簡單了。
ThreadUtils.startThread(runnable); ThreadUtils.cancelThread(runnable);一個是開啟線程池,一個是取消線程池
總結
以上是生活随笔為你收集整理的Android开发线程池管理类之ThreadPoolExecutor工具类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 旅游旺季将至!兼职导游20万年薪仍招不到
- 下一篇: Android开发之Java的IO流读写