线程池的坑

线程池的最佳实践

  1. 能不能不用线程池?

  2. 线程池参数设置得更合理?

  3. 动态修改线程池参数

如何实现?
JDK原生线程池ThreadPoolExecutor提供了如下几个public的setter方法

线程池的原理

各种概念讲解

构造函数

public ThreadPoolExecutor(int corePoolSize,//核心线程数
      int maximumPoolSize,//最大线程数
      long keepAliveTime,//当线程数大于核心线程数时,多余的空闲线程存活的最长时间
      TimeUnit unit,//时间单位
      BlockingQueue<Runnable> workQueue,//任务队列,用来储存等待执行任务的队列
      ThreadFactory threadFactory,//线程工厂,用来创建线程,一般默认即可
      RejectedExecutionHandler handler//拒绝策略,当提交的任务过多而不能及时处理时,我们可以定制策略来处理任务
){

重要参数讲解
方法参数

拒绝策略

阻塞队列

流程总结
image
其实这张图已经说得非常明显了,要看判断逻辑,还有下面这张图
image

posted on 2024-05-24 09:45  大元王保保  阅读(13)  评论(0)    收藏  举报