Android开发中,线程池工具类的封装与使用。

一、线程池工具类

/**

* 线程池工具类

* @author zhangjikai

* 20190711

*/

public class ThreadPoolUtil {

//核心线程数为5

    private static int CORE_POOL_SIZE=5;

//线程池最大线程数

    private static int MAX_POOL_SIZE=20;

//额外线程空状态生存时间

    private static int KEEP_ALIVE_TIME=10000;

//阻塞队列。当核心线程都被占用,且阻塞队列已满的情况下,才会开启额外线程。

    private static BlockingQueueblockingQueue=new ArrayBlockingQueue(10);

//线程池

    private static ThreadPoolExecutorthreadPool;

//无参构造方法

    public ThreadPoolUtil() {

}

//线程工厂

    private static ThreadFactorythreadFactory=new ThreadFactory() {

private final AtomicIntegerinteger=new AtomicInteger();

@Override

        public Thread newThread(Runnable runnable) {

return new Thread(runnable,"myThreadPool thread:" +integer.getAndIncrement());

}

};

//静态代码块

    static {

threadPool=new ThreadPoolExecutor(CORE_POOL_SIZE,MAX_POOL_SIZE,KEEP_ALIVE_TIME,TimeUnit.SECONDS,blockingQueue,threadFactory);

}

public static void execute(Runnable runnable) {

threadPool.execute(runnable);

}

public static void execute(FutureTask futureTask) {

threadPool.execute(futureTask);

}

public static void cancel(FutureTask futureTask) {

futureTask.cancel(true);

}

}

二、使用

private void testPool(){

ThreadPoolUtil.execute(new Runnable() {

@Override

        public void run() {

/**

* 这里写你需要执行的操作

*/

        }

});

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容