java线程池简述

  java中如果业务上需要从数据库中抓取n条数据处理,这时为了加快处理速度一般是采用池程池进行处理。

  java默认实现的线程池是ThreadPoolExecutor。该类继承AbtractExecutorService,而AbstractExecutorService实现接口Executor及ExecutorService。

  Executor接口定义了一个executor(Runable command)方法。ExecutorService则定义了submit,shutdown等方法。

  ThreadPoolExecutor对于开发用户来讲,可以定制它的几个属性:

   corePoolSize(核心线程数),maxPoolSize(最大线程数),线程空闲时间(用于将大于corePoolSize个数的线程释放,使线程数维持在corePoolSize这个数上),任务队列。

   往线程池丢一个任务,之后的基本流程是:

   1.当当前线程池中活动的线程数小于corePoolSize时,创建一个新线程用于执行当前任务

   2.否则当当前线程池中活动的线程数大于等于corePoolSize时,将当前任务放入任务队列。

这里如果任务队列也满了,则只能再次创建线程来执行当前任务。

而最坏的情况下是创建的线程数超过maxPoolSize时,则会返回失败,或抛出异常。具体要看RejectHandler实现,default是抛运行时异常。还有是丢弃策略,丢弃最早的任务策略,或者拒绝的任务由调用方来执行。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值