多线陈第五章-线程池

1,常见的4大线程池

public static void main(String[] args) {
        //只有一个线程的线程池
        ExecutorService single = Executors.newSingleThreadExecutor();
        //创建可缓存的线程池,线程池线程个数最大可以达到Integer.MAX_VALUE,线程自动回收
        Executors.newCachedThreadPool();
        //固定线程数的线程池
        Executors.newFixedThreadPool(10);
        //创建可以延迟执行任务的线程池
        Executors.newScheduledThreadPool(20);
   }

2,线程池常用参数

  • corePoolSize 核心线程数
  • maximunPoolSize 最大线程数
  • keepAliveTime 当线程池中得线程数大于核心线程数时并且线程是闲置状态,线程存活得最大时间
  • TimeUnit 存活时间的时间单位
  • workQueue 用于保存等待执行的任务的阻塞队列,比如基于数组的有界ArrayBlockingQueue、基于链表的无界LinkedBlockingQueue、最多只有一个元素的同步队列SynchronousQueue及优先级队列PriorityBlockingQueue等
  • ThreadFactory:创建线程的工厂
  • RejectedExecutionHandler:饱和策略,当队列满并且线程个数达到maximunPoolSize后采取的策略,比如AbortPolicy(抛出异常)、CallerRunsPolicy(使用调用者所在线程来运行任务)、DiscardOldestPolicy(调用poll丢弃一个任务,执行当前任务)及DiscardPolicy(默默丢弃,不抛出异常)
posted @   浪成于微澜之间  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示