【Java成神之路】如何创建线程池?

2022-04-15 10:37:07  晓掌柜  版权声明:本文为站长原创文章,转载请写明出处


一、其中线程池创建方式

    线程池的创建方式总共包含以下 7 种(其中 6 种是通过 Executors 创建的,1 种是通过ThreadPoolExecutor 创建的):

二、Executors.newFixedThreadPool

    创建一个固定大小的线程池,可控制并发的线程数,超出的线程会在队列中等待;

三、Executors.newCachedThreadPool

    创建一个可缓存的线程池,若线程数超过处理所需,缓存一段时间后会回收,若线程数不够,则新建线程;

四、Executors.newSingleThreadExecutor

    创建单个线程数的线程池,它可以保证先进先出的执行顺序;

五、Executors.newScheduledThreadPool

    创建一个可以执行延迟任务的线程池;

六、Executors.newSingleThreadScheduledExecutor

    创建一个单线程的可以执行延迟任务的线程池;

七、Executors.newWorkStealingPool

    创建一个抢占式执行的线程池(任务执行顺序不确定)【JDK 1.8 添加】。

八、ThreadPoolExecutor

    最原始的创建线程池的方式,它包含了 7 个参数可供设置。单线程池的意义从以上可以看出 newSingleThreadExecutor 和 newSingleThreadScheduledExecutor 创建的都是单线程池,那么单线程池的意义是什么呢?答:虽然是单线程池,但提供了工作队列,生命周期管理,工作线程维护等功能。



最新评论: