不推荐使用executors创建线程池_创建线程池的几种方式

不推荐使用executors创建线程池_创建线程池的几种方式 java中线程池的创建除了使用ThreadPoolExecutor之外,还可以使用Executors的静态方法来获取不同的线程池。Executors类 Executors利用工厂模式向我们提供了4种线程池静态实现方式。创建无大小限制的线程池publicstaticExecutorServicenewCachedThreadPool(){return…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

 java中线程池的创建除了使用ThreadPoolExecutor之外,还可以使用Executors的静态方法来获取不同的线程池。

Executors类

 Executors利用工厂模式向我们提供了4种线程池静态实现方式。

  • 创建无大小限制的线程池
public static ExecutorService newCachedThreadPool() {
    return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
                        60L, TimeUnit.SECONDS,
                        new SynchronousQueue<Runnable>());
    }
  • 创建固定大小的线程池
public static ExecutorService newFixedThreadPool(int nThreads) {
        return new ThreadPoolExecutor(nThreads, nThreads,
                                      0L, TimeUnit.MILLISECONDS,
                                      new LinkedBlockingQueue<Runnable>());
    }
  • 单线程池
public static ExecutorService newSingleThreadExecutor() {
        return new FinalizableDelegatedExecutorService
            (new ThreadPoolExecutor(1, 1,
                                    0L, TimeUnit.MILLISECONDS,
                                    new LinkedBlockingQueue<Runnable>()));
    }
  • 创建定时调度池
// 开启定时调度池
public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize) {
        return new ScheduledThreadPoolExecutor(corePoolSize);  
    }

/** * 使用ScheduledThreadPoolExecutor的该方法设置参数 * @param command 要承担的线程任务 * @param initialDelay 入池的线程开启的时间(从入池开始计时) * @param period 线程再一次启动时间 * @param unit period的单位 **/
public ScheduledFuture<?> scheduleAtFixedRate(Runnable command,
                                                  long initialDelay,
                                                  long period,
                                                  TimeUnit unit);

 通过使用以上四种静态方法,基本可以实现日程中对线程池的需求但是并不推荐使用,原因是使用Executors创建线程池不会传入线程池具体参数而是使用默认值所以我们常常忽略这些参数,从上面的源码中我们可以看到,Executors的静态方法实际上还是调用的ThreadPoolExecutor来创建线程池,只不过,它将绝大多数参数用默认值代替,而只给我们留下了关心的个别参数。

 最近阿里发布的 Java开发手册中强制线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188531.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • tcp 之 wireshark过滤规则

    tcp 之 wireshark过滤规则nbsp 去这里看

    2025年10月2日
    5
  • 【转录调控网络】典型的基因转录调控网络推导方法——奇异值分解

    【转录调控网络】典型的基因转录调控网络推导方法——奇异值分解基因转录调控网络推导方法 奇异值分解奇异值分解是线性代数中的一种矩阵分解方法 在信号处理和统计学等领域应用广泛 目前 奇异值分解已被广泛应用在大规模基因表达数据分析 例如 Yeung 等利用奇异值分解法在稀疏条件下重建了基因调控网络 实验证明该方法具有较高的准确性 而且具有较低的计算复杂度 为了减少复杂度 这种方法只考虑了稳态情况下的调控关系 并用一个线性微分方程组 方程 1 来表示 dxi t dt ixi t j 1nWijxi t b t i t i 1 2 n frac m

    2025年7月26日
    6
  • linux配置本地yum源 百度经验_centos7yum源的配置

    linux配置本地yum源 百度经验_centos7yum源的配置由于redhat的yum在线更新是收费的,如果没有注册的话不能使用,如果要使用,需将redhat的yum卸载后,重启安装,再配置其他源,以下为详细过程:1.删除redhat原有的yumrpm-aq|grepyum|xargsrpm-e–nodeps2.下载yum安装文件wgetwgetwgetwget3.进行安装yumrpm-ivhpython-iniparse-0.3.1-2….

    2022年8月13日
    5
  • Linux系统的Web服务器的搭建

    Linux系统的Web服务器的搭建实验环境:RedHat6.4两台第一步:我选择安装Apache软件作为Web服务器软件,你可以选择其他的,个人喜好查询是否安装Apache软件包一般linux服务器已进行安装Apache软件包,如果你的没有可以这样安装连接iso文件然后mkdir/mnt/cdrom#创建挂载点mount/dev/cdrommnt/cdrom #挂载光驱cd/nmt…

    2022年5月16日
    69
  • 【SpringBoot】39、SpringBoot上传文件至项目resources目录下

    【SpringBoot】39、SpringBoot上传文件至项目resources目录下当我们没有搭建单独的文件服务器时,我们需要将文件上传至项目目录下,今天我们就学习如何上传文件到项目的resources目录下一、引入依赖<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.3</version></depende

    2022年6月13日
    31
  • 一文搞定子网划分!子网掩码!超详细例题解析![通俗易懂]

    一文搞定子网划分!子网掩码!超详细例题解析![通俗易懂]子网划分理论基础为什么进行子网划分减少网络流量,无论什么样的流量,我们都希望它少些,网络流量亦如此。如果没有可信赖的路由器,网络流量可能导致整个网络停顿,但有了路由器后,大部分流量都将呆在本地网络内,只有前往其他网络的分组将穿越路由器。路由器增加广播域,广播域越多,每个广播轻松划分子网域就越小,而每个网段的网络流量也越少。优化网络性能,这是减少网络流量的结果。简化管理,与庞大的网络相比,在一系列相连的小网络中找出并隔离网络问题更容易。有助于覆盖大型地理区域,WAN链路比LAN链路的速度慢得多,且

    2022年6月27日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号