美文网首页
Android开发中,线程池工具类的封装与使用。

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

作者: 伤心的鱼嗯 | 来源:发表于2019-07-11 15:14 被阅读0次

    一、线程池工具类

    /**

    * 线程池工具类

    * @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() {

    /**

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

    */

            }

    });

    }

    相关文章

      网友评论

          本文标题:Android开发中,线程池工具类的封装与使用。

          本文链接:https://www.haomeiwen.com/subject/jukdkctx.html