日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android开发线程池管理类之ThreadPoolExecutor工具类

發布時間:2023/12/15 Android 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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工具类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。