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 }