import org.junit.Test;
import java.util.concurrent.*;
public class ThreadPoolTest {
@Test
public void ThreadPool() {
//1、JUC工具包给我们提供了这样的一个类, 通过这个类, 可以直接创建线程池对象
//2、其中一共有7个参数,①核心线程池数,②最大线程数,③存活时间 多长时间没有接到任务, 就可以下班回家了,④时间单位(秒),⑤等待队列,⑥线程工厂,⑦拒绝策略(直接抛异常的方式)
ExecutorService executorService = new ThreadPoolExecutor(3, 5, 1L, TimeUnit.SECONDS, new ArrayBlockingQueue<>(3), Executors.defaultThreadFactory());
//3、接待客户,i< 客户人数
for (int i = 0; i < 8; i++) {
//3.1、从线程池取线程对象
executorService.execute(() -> {
System.out.println(Thread.currentThread().getName() + " , 这个人在办理业务");
});
}
//4、关掉线程池
executorService.shutdown();
//5、来第9个会报错, 抛异常, 默认采用拒绝策略
}
}
原文:https://www.cnblogs.com/Twittery/p/15101132.html