加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

java中线程池的创建

发布时间:2022-12-02 11:14:57 所属栏目:Linux 来源:
导读:  在讲过线程池的一些好处后,接下来我们要对线程池进行创建,在开始之前需要学习一些创建时会用到的参数,这里以ThreadPoolExecutor的方法为例。对于七中的参数属性概念和用法做一个简单的介绍,在全部掌握这些参
  在讲过线程池的一些好处后,接下来我们要对线程池进行创建,在开始之前需要学习一些创建时会用到的参数,这里以ThreadPoolExecutor的方法为例。对于七中的参数属性概念和用法做一个简单的介绍,在全部掌握这些参数的用法后,进一步在实例中展示ThreadPoolExecutor创建线程池的方法。
 
  1.创建参数
 
  线程池可以自动创建也可以手动创建,手动创建体现在可以灵活设置线程池的各个参数。
 
  corePoolSize:线程池的核心线程数,说白了就是,即便是线程池里没有任何任务,也会有corePoolSize个线程在候着等任务。
 
  maximumPoolSize:最大线程数,不管你提交多少任务,线程池里最多工作线程数就是maximumPoolSize。
 
  keepAliveTime:线程的存活时间。当线程池里的线程数大于corePoolSize时,如果等了keepAliveTime时长还没有任务可执行,则线程退出。
 
  unit:这个用来指定keepAliveTime的单位,比如秒:TimeUnit.SECONDS。
 
  七种静态属性TimeUnit.DAYS; //天
 
  TimeUnit.HOURS; //小时
 
  TimeUnit.MINUTES; //分钟
 
  TimeUnit.SECONDS; //秒
 
  TimeUnit.MILLISECONDS; //毫秒
 
  TimeUnit.MICROSECONDS; //微妙
 
  TimeUnit.NANOSECONDS; //纳秒
 
  workQueue:一个阻塞队列,提交的任务将会被放到这个队列里:
 
  ArrayBlockingQueue;
 
  LinkedBlockingQueue;
 
  SynchronousQueue;
 
  threadFactory:线程工厂线程池linux,用来创建线程,主要是为了给线程起名字,默认工厂的线程名字:pool-1-thread-3。
 
  handler:拒绝策略,当线程池里线程被耗尽,且队列也满了的时候会调用。
 
  2.创建实例public ThreadPoolExecutor(int corePoolSize,
 
  int maximumPoolSize,
 
  long keepAliveTime,
 
  TimeUnit unit,
 
  BlockingQueue workQueue) {
 
  this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,
 
  Executors.defaultThreadFactory(), defaultHandler);
 
  }
 
  以上就是ThreadPoolExecutor在java中创建线程池的方法,需要对基本的参数用法有所掌握,学会后就可以对创建线程的代码部分进行试验了,检验我们的线程学习成果。
 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!