创建线程池的几种方式
作者:bin创建一个可缓存线程池,应用中存在的线程数可以无限大
创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
        //1.创建一个可缓存线程池,应用中存在的线程数可以无限大
        ExecutorService newCachedThreadPool = Executors.newCachedThreadPool();
        //2.描述:创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
        //ExecutorService newFixedThreadPool = Executors.newFixedThreadPool(2);
        for(int i=0;i<10;i++)
        {
            final int index=i;
            newCachedThreadPool.execute(new Runnable() {
                @Override
                public void run() {
                   System.out.println("nihao" + index);
                }
            });
        }
创建一个定长线程池,支持定时及周期性任务执行。
            //定时调度线程
            ScheduledExecutorService newScheduledThreadPool = Executors.newScheduledThreadPool(2);
            for(int i=0;i<10;i++)
            {
                final int index=i;
                //延迟三秒执行
                newScheduledThreadPool.schedule(new Runnable() {
                    @Override
                    public void run() {
                        System.out.println("nihao" + index);
                    }
                }, 3, TimeUnit.SECONDS);
            }
创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
        /**
         * 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,
         * 保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
         */
    
        ExecutorService newSingleThreadExecutor = Executors.newSingleThreadExecutor();
        for(int i=0;i<10;i++)
        {
            final int index=i;
            newSingleThreadExecutor.execute(new Runnable() {
                @Override
                public void run() {
                    System.out.println("nihao" + index);
                }
            });
        }