CachedThreadPool 60秒缓存线程--线程池工具类

前言:该线程池比较适合没有固定大小并且比较快速就能完成的小任务,
它将为每个任务创建一个线程。那这样子它与直接创建线程对象(new Thread())有什么区别呢?
好处就在于60秒内能够重用已创建的线程。
CachedThreadPool:无界线程池,可以进行自动线程回收。
如果线程池的大小超过了处理任务所需要的线程,那么就会回收部分空闲(60秒不执行任务)的线程,当任务数增加时,此线程池又可以智能的添加新线程来处理任务。此线程池不会对线程池大小做限制,线程池大小完全依赖于操作系统(或者说JVM)能够创建的最大线程大小。SynchronousQueue是一个是缓冲区为1的阻塞队列。

/**该线程池比较适合没有固定大小并且比较快速就能完成的小任务,
它将为每个任务创建一个线程。那这样子它与直接创建线程对象(new Thread())有什么区别呢?
好处就在于60秒内能够重用已创建的线程。
CachedThreadPool:无界线程池,可以进行自动线程回收。
*/

/**
 * @desc
 * @auth 方毅超
 * @time 2017/8/5 13:25
 */

public class CachedThreadPool {
    private static ExecutorService pool = null;

    /*初始化线程池*/
    public static void init() {
        if (pool == null) {
            pool = Executors.newCachedThreadPool();
        }
    }
    /*提交任务执行*/
    public static void execute(Runnable r) {
        init();
        pool.execute(r);
    }
    /* 关闭线程池*/
    public static void unInit() {
        if (pool == null || pool.isShutdown()) return;
        pool.shutdownNow();
        pool = null;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 线程池算是Android开发中非常常用的一个东西了,只要涉及到线程的地方,大多数情况下都会涉及到线程池。Andro...
    郑在学_blog阅读 3,841评论 0 1
  • 前言 线程池是Java中的一个重要概念,从Android上来说,当我们跟服务端进行数据交互的时候我们都知道主线程不...
    老实任阅读 5,025评论 1 9
  • 一、线程池简介 在实际开发中,如果每个请求到达就创建一个新线程,开销是相当大的。服务器在创建和销毁线程上花费的时间...
    不知名的蛋挞阅读 3,741评论 0 7
  • 先看几个概念:线程:进程中负责程序执行的执行单元。一个进程中至少有一个线程。多线程:解决多任务同时执行的需求,合理...
    yeying12321阅读 3,607评论 0 0
  • 前段时间遇到这样一个问题,有人问微信朋友圈的上传图片的功能怎么做才能让用户的等待时间较短,比如说一下上传9张图片,...
    加油码农阅读 4,951评论 0 2

友情链接更多精彩内容