线程池的核心参数
1 public static void main(String[] args) { 2 ThreadFactory threadFactory = new ThreadFactory() { 3 @Override 4 public Thread newThread( Runnable r) { 5 Thread thread = new Thread(); 6 thread.setName("11"); 7 thread.setPriority(1); 8 return thread; 9 } 10 }; 11 //核心数量、最大值、存活时间、存活时间的单位、存储线程的队列、定义线程的工厂、拒绝策略 12 // 存储线程的队列 13 /*ArrayBlockingQueue:一个由数组结构组成的有界阻塞队列。 14 15 LinkedBlockingQueue:一个由链表结构组成的有界阻塞队列。 16 17 SynchronousQueue:一个不存储元素的阻塞队列,即直接提交给线程不保持它们。 18 19 PriorityBlockingQueue:一个支持优先级排序的无界阻塞队列。 20 21 DelayQueue:一个使用优先级队列实现的无界阻塞队列,只有在延迟期满时才能从中提取元素。 22 23 LinkedTransferQueue:一个由链表结构组成的无界阻塞队列。与SynchronousQueue类似,还含有非阻塞方法。 24 25 LinkedBlockingDeque:一个由链表结构组成的双向阻塞队列(默认)。*/ 26 27 // 被拒绝的线程如何处理 28 // 1.直接抛出错误 (默认) AbortPolicy 29 // 2.直接丢弃 DiscardPolicy 30 // 3.替换成存活时间最长的线程去执行 DiscardOldestPolicy 31 // 4.使用当前调用的线程来执行 CallerRunsPolicy 32 33 ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(10, 1, 10, TimeUnit.SECONDS, new LinkedBlockingDeque<>(), threadFactory); 34 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了