多线程之自定义线程池

 假设开一家饭店,每一个服务员只能服务一个客户,有永久服务员和临时招聘服务员。

临时服务员一旦空闲超过一定时间就会被辞退。如果排队的人数过多,会赶走超出的顾客让他们下次再来。

多线程之自定义线程池_第1张图片

public class 自定义线程池 {
    public static void main(String[] args) {
        /*
        1、核心线程数量
        2、最大线程数
        3、空闲线程最长存活时间
        4、时间单位
        5、任务队列
        6、创建线程工厂->从哪里获得线程(从哪里找人)
        7、任务的拒绝策略
         */

        ThreadPoolExecutor pool=new ThreadPoolExecutor(
                3,//核心线程数量
                6,//最大线程数量
                60,
                TimeUnit.SECONDS,//时间单位
                new ArrayBlockingQueue<>(3),//任务队列
                Executors.defaultThreadFactory(),//创建线程工厂---->制作线程
                //任务拒绝策略单独存在没有意义专门为线程池服务,同时任务拒绝策略又是一个单独的个体
                new ThreadPoolExecutor.AbortPolicy()//这是一个静态内部类,想要使用需要用类名调用--->任务拒绝策略
        );
    }
}

 

你可能感兴趣的:(java,java,开发语言)