import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
public class ShutDownExample {
public static void main(String[] args) {
int processors = Runtime.getRuntime().availableProcessors();
ThreadPoolExecutor executor = new ThreadPoolExecutor(processors, processors, 0L, TimeUnit.MILLISECONDS,
new ArrayBlockingQueue<>(1000),
Executors.defaultThreadFactory(),
new ThreadPoolExecutor.DiscardOldestPolicy());
executor.execute(() -> {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(1);
});
//关闭线程池,等待正在执行的线程执行完成后关闭
executor.shutdown();
//强制关闭线程池,中断正在执行的线程
executor.shutdownNow();
}
}