Java线程池

2024-06-22  本文已影响0人  jecyhw

线程池核心参数

有7个核心参数

  1. 核心线程数
  2. 最大线程数
  3. 任务队列
  4. 线程空闲存活时间
  5. 线程空闲存活时间的单位
  6. 线程创建工厂
  7. 拒绝策略

任务提交流程

往线程池中提交任务流程如下:

  1. 判断线程池中线程数是否小于核心线程数,小于新建线程执行任务,否则进入步骤2
  2. 判断任务队列是否满了,没满任务添加到队列中,否则进入步骤3
  3. 判断线程池中线程是是否小于最大线程数,小于新建线程执行任务,否则按照拒绝策略拒绝任务


    任务提交流程

线程池状态

线程池有5种状态:

拒绝策略

有4种:

  1. 直接丢弃
  2. 直接拒绝,抛异常
  3. 交给应用线程执行
  4. 丢弃队列中最早的任务,然后重新提交

线程池的数量怎么确定

看场景是cpu密集型还是io密集型

上一篇 下一篇

猜你喜欢

热点阅读