简介
线程池是java中用来管理线程的工具,可以复用线程,以减小创建销毁线程的开销,同时提供了对线程灵活的控制
参数含义
1562683184(1).jpgcorePoolSize 为常驻线程数量,常驻线程在任务执行完成后会阻塞
maximunPoolSize 为线程池最大线程数,非核心线程在执行完成任务后停留一段时间后会被销毁
keepAliveTime 为非核心线程驻留时间
unit 时间单位
workQueue 任务队列
threadFactory 用于创建线程
RejectedExecutionHandler 拒绝策略
当提交一个任务时,首先会检查核心线程数量,若未满,则添加核心线程来执行,若已满,则添加到阻塞队列,若添加失败,则尝试添加线程,若任然失败,则执行拒绝策略
线程数核心线程数配置
若为IO密集型,则需要较多的线程,建议 2 * N_CORE
若为CPU密集型,建议 N_CORE + 1,对一个线程来利用IO等待CPU空出来的时钟周期
网友评论