线程池、参数和常见线程池

本文深入探讨Java线程池的核心概念,包括线程池参数如核心线程数、最大线程数、非核心线程存活时间和队列类型。详细解释了线程池的工作流程、拒绝策略,如AbortPolicy、DiscardPolicy等,并通过实例解析四种常见线程池的参数配置。通过对ArrayBlockingQueue、LinkedBlockingQueue等队列类型的对比,帮助理解线程池的运行机制。
摘要由CSDN通过智能技术生成

本文将讲解线程池参数、参数之间的关系以及线程池以一个怎么样的策略执行新增到线程池的线程,最后会举例常见的线程池是怎么样应用这些参数和流程的。文章较长,可以根据目录选择想看的知识,若有错误请指出。

1.线程池概述

线程池,顾名思义就是一个装线程的池子,池子里的线程可以重复理用,降低产生和销毁线程的开销。举个例子,没有线程池使用线程的时候,就像开水龙头洗手,每次洗手都需要开水龙头,洗完手水就会流进下水道。而线程池就像在水盆洗手,每次洗手只需要重复理用水盆的水就好了(手太脏的当我没说)。

2.线程池参数

先看个小例子:

 ExecutorService executorService = new ThreadPoolExecutor(5, 5, 0L,TimeUnit.MILLISECONDS,new LinkedBlockingQueue<>(5), 
new ThreadPoolExecutor.CallerRunsPolicy());

在这个例子里面,产生了一个线程池,点进去看一下构造方法:

public ThreadPoolExecutor(int corePoolSize,
                              int maximumPoolSize,
                              long keepAliveTime,
                              TimeUnit unit,
                              BlockingQueue<Runnable> workQueue,
                              RejectedExecution
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值