package com.itheima.MythoeadPool;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class MyThreadPooDemo4 {
//1.核心线程数量
//2.最大线程数
//3.空闲线程最大存活时间
//4.时间单位---TimeUnit
//5.认为队列---让任务在队列中等待,等有空闲,再从这个队列中获取任务执行
//6.创建线程工厂--按照默认方式创建对象
//7.任务的拒绝策略--//什么时候拒绝任务,当提交的任务>大于池子中最大线程数量+队列容量
//如何拒绝
public static void main(String[] args) {
ThreadPoolExecutor pool=new ThreadPoolExecutor(
2,
5,
2,
TimeUnit.SECONDS,
new ArrayBlockingQueue<>(10),
Executors.defaultThreadFactory(),
new ThreadPoolExecutor.AbortPolicy());
for (int i=1;i<=15;i++) {
pool.submit(new MyRunnable());
}
pool.shutdown();
}
}
package com.itheima.MythoeadPool;
public class MyRunnable implements Runnable{
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"在执行了");
}
}