import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.FutureTask;import java.util.concurrent.ThreadFactory;import java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;/** * Created by Administrator on 2017/10/27. */public class ThreadPoolUtils {        //线程池核心线程数    private static int CORE_POOL_SIZE = 5;    //线程池最大线程数    private static int MAX_POOL_SIZE = 10;    //额外线程空状态生存时间    private static int KEEP_ALIVE_TIME = 10000;    //阻塞队列。当核心线程都被占用,且阻塞队列已满的情况下,才会开启额外线程。    private static BlockingQueue workQueue = new ArrayBlockingQueue(10);        //线程池    private static ThreadPoolExecutor threadPool;    private ThreadPoolUtils() {        }    //线程工厂    private static ThreadFactory threadFactory = new ThreadFactory() {        private final AtomicInteger integer = new AtomicInteger();        @Override        public Thread newThread(Runnable r) {            return new Thread(r, "myThreadPool thread:" + integer.getAndIncrement());        }    };    static {        threadPool = new ThreadPoolExecutor(CORE_POOL_SIZE, MAX_POOL_SIZE, KEEP_ALIVE_TIME,                TimeUnit.SECONDS, workQueue, 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);    }}

更多相关文章

  1. Android进程与线程基本知识四
  2. android利用Handler开启线程和关闭线程
  3. 在Android中使用Handler和Thread线程执行后台操作
  4. Android的线程模型
  5. Android 多线程AsyncTask详解
  6. Android 多线程之 AsyncTask
  7. android主线程和子线程的区别

随机推荐

  1. 数据的储存(一)(整形)(零基础学习C语言)
  2. 基于SSM实现的影院订票系统【附源码】(毕
  3. Kubernetes(k8s)1.16.4部署 nginx-ingres
  4. 码农之路(7)- 第一次出差
  5. LAMP环境搭建与配置
  6. 码农之路(6)- Hello Fox
  7. 码农之路(5)- 第0份工作
  8. 码农之路(4)- 两面之缘
  9. 致IT人:健康、家庭、事业之平衡
  10. shell单分支if条件句语法详解与生产案例