20230713 java.util.concurrent.ThreadPoolExecutor

发布时间 2023-08-22 17:42:50作者: 流星<。)#)))≦

介绍

  • java.util.concurrent.ThreadPoolExecutor
  • public class ThreadPoolExecutor extends AbstractExecutorService

API

构造器

  • ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue)
  • ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory)
  • ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, RejectedExecutionHandler handler)
  • ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler)
    • corePoolSize :初始线程池大小
    • maximumPoolSize :最大线程池大小
    • keepAliveTime :设置线程存活时间,即当池中线程多于初始大小时,多出的线程保留的时长
    • unit :keepAliveTime 的时间单位
    • workQueue :设置队列,用于存在未执行的线程
    • threadFactory :线程工厂,用于自定义线程创建
    • handler :设置当线程阻塞(block)时的异常处理器,所谓线程阻塞即线程池和等待队列已满,无法处理线程时采取的策略

public

  • setCorePoolSize, getCorePoolSize

  • setMaximumPoolSize, getMaximumPoolSize

  • setKeepAliveTime, getKeepAliveTime

  • getQueue

    • workQueue
  • setThreadFactory, getThreadFactory

  • setRejectedExecutionHandler, getRejectedExecutionHandler

    • 匹配构造器中的参数
  • execute

    • void execute(Runnable command)
  • shutdown

    • 启动有序关闭,其中执行先前提交的任务,但不会接受新任务
  • shutdownNow

    • 尝试停止所有正在执行的任务,停止正在等待的任务的处理,并返回正在等待执行的任务的列表
    • 此方法不等待主动执行的任务终止。使用 awaitTermination 来做到这一点
  • awaitTermination

    • 阻塞,直到所有任务在关闭请求后完成执行
  • prestartAllCoreThreads

    • 启动所有核心线程
  • prestartCoreThread

    • 启动一个核心线程
    • 默认情况下,即使是核心线程也仅在新任务到达时才最初创建和启动
  • allowsCoreThreadTimeOut

    • 允许核心线程超时
    • 默认 false ,核心线程永远不会由于缺少传入任务而终止
  • allowCoreThreadTimeOut

    • 设置 allowsCoreThreadTimeOut
  • getActiveCount

    • 返回正在主动执行任务的线程的大致数量
  • getTaskCount

    • 返回已计划执行的任务的大致总数
  • getCompletedTaskCount

    • 返回已完成执行的任务的大致总数
  • getLargestPoolSize

    • 返回池中曾经同时存在的最大线程数
  • getPoolSize

    • 返回当前线程池中线程数量
  • isTerminating

    • 如果此执行器在 shutdownshutdownNow 之后正在终止但尚未完全终止,则返回 true
  • purge

    • 尝试从工作队列中删除所有已取消的 Future 任务
  • remove

    • 从队列中移除