newFixedThreadPool,可控最大并发数线程池

多线程实现-可控最大并发数线程池(newFixedThreadPool)

最多只会创建设置的线程数量,其他的任务处于等待队列。

测试:

package com.itcast.thread;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * @Description  可控最大并发数线程池
 * @Author by mocar小师兄
 * @Date 2019/11/29 12:20
 **/
public class NewFixedThreadPool {

    public static void main(String[] args) {
        //main方法时一个主线程
        ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3);//并发数
        for (int i = 0; i <10 ; i++) {
            final int index=i;
            fixedThreadPool.execute(new Runnable() {
                @Override
                public void run() {
                    //Thread.currentThread().setName("thread i =" + index);
                    System.out.println(Thread.currentThread().getName() +" ,循环index :" + index);
                    try {
                        Thread.sleep(2*1000);//休眠2s
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }

                }
            });
        }

        fixedThreadPool.shutdown();
//        fixedThreadPool.shutdownNow();  //立即关闭,正在运行的任务尝试关闭
        System.out.println("main thread finish");
    }
}

发布了109 篇原创文章 · 获赞 2 · 访问量 5710

猜你喜欢

转载自blog.csdn.net/Seven71111/article/details/103310039