线程池的核心参数

 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     }

 

posted @ 2023-03-01 11:35  bai白  阅读(20)  评论(0编辑  收藏  举报