安卓线程池的封装ThreadPoolProxy
来源:互联网 发布:彩色电纸书 知乎 编辑:程序博客网 时间:2024/06/07 03:39
package com.a520it.mygoogleplay.manager;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
//创建一个线程池
public class ThreadPoolProxy {
private int mCorePoolSize; //核心线程的个数private int mMaximumPoolSize; //总的线程个数private long mKeepAliveTime; //线程空闲的时间private ThreadPoolExecutor mPoolExecutor;public ThreadPoolProxy(int corePoolSize, int maximumPoolSize, long keepAliveTime) { mCorePoolSize = corePoolSize; mMaximumPoolSize = maximumPoolSize; mKeepAliveTime = keepAliveTime;}//初始化线程池public void initThreadPoolExecutor(){ //判断不能重复创建 if (mPoolExecutor ==null || mPoolExecutor.isShutdown() || mPoolExecutor.isTerminated()){ //同步锁 synchronized (ThreadPoolProxy.class){ //创建参数 TimeUnit unit = TimeUnit.MICROSECONDS; //毫秒 BlockingQueue<Runnable> workQueue = new LinkedBlockingDeque<>(); ThreadFactory threadFactory = Executors.defaultThreadFactory(); RejectedExecutionHandler handler = new ThreadPoolExecutor.DiscardPolicy(); mPoolExecutor = new ThreadPoolExecutor( mCorePoolSize, mMaximumPoolSize, mKeepAliveTime, unit, //时间的单位 workQueue,//任务队列 threadFactory,//线程的工厂 handler); //异常捕获器 } }}//提交任务的方法public void submit(Runnable task){ //先初始化线程池 initThreadPoolExecutor(); mPoolExecutor.submit(task);}//执行任务的方法public void cxecute(Runnable task){ //先初始化线程池 initThreadPoolExecutor(); mPoolExecutor.execute(task);}//移除任务的方法public void remove(Runnable task){ //先初始化线程池 initThreadPoolExecutor(); mPoolExecutor.remove(task);}
}
阅读全文
0 0
- 安卓线程池的封装ThreadPoolProxy
- 安卓okhttp的封装
- 安卓的4种线程池
- 安卓笔记-封装的HttpUtils
- 安卓开发SharedPreferences的封装
- 安卓OKhttp的二次封装
- 安卓 线程 和 线程池
- 安卓线程池和线程
- 安卓之线程池
- 安卓数据库封装
- 安卓Dialog封装
- 安卓OkHttp封装
- 安卓的线程池的四种方式
- 安卓线程池ThreadPoolExecutor的常见使用
- 使用QueueUserWorkerItem实现的线程池封装
- C++ 线程池的封装实现
- 基于AsyncTask的线程池封装
- 使用QueueUserWorkerItem实现的线程池封装
- Mycat使用篇: Mycat启动脚本及脚本配置文件详解
- 收藏版:java常见面试题目精讲视频教程!
- mvn spring-boot:run命令
- Python模块初识
- vs2010下release版本调试设置
- 安卓线程池的封装ThreadPoolProxy
- 查看端口号并且禁止
- Linux.ext4文件系统.inode和extent
- 自定义枚举
- 疯狂Java讲义里面的小游戏
- 清除浮动
- 快速上手Eclipse Eclipse快捷键指南
- Android webView使用详解(Cookies)
- JavaScript进阶设计模式系列——基础篇——闭包(1)--闭包和作用域