默认线程工厂的实现类源码: alt

线程工厂的主要工作就是创建线程,但是java提供的线程工厂对于线程的名字取法比较严格;

可以使用jdk中的工具查看:(jdk1.8下面的jvmm工具,打开之后可以看到线程线程之间的关系,排查是否存在死锁)

线程工厂中创建线程时使用了多个参数的构造器来实现:分别为,线程组,Runnable对象,线程的名字,以及线程编号,栈的大小;

线程名字:“pool-”加上线程池编号 “-thread-”;这个线程池的编号是一个原子类,整型原子类;并且使用getIncrement()方法,

package com.ydlclass.thread;

import com.ydlclass.lock.ThreadUtil;
//线程工厂的创建的线程名称是怎样的?
import java.util.concurrent.*;

public class ThreadFactoryTest {
    public static void main(String[] args) {
        ExecutorService executorService = Executors.newFixedThreadPool(10);
        Runnable task = () -> {
            ThreadUtil.sleep(10000);
            System.out.println("执行一次");
        };

        for (int i = 0; i < 500; i++) {
            ThreadUtil.sleep(10000);
            executorService.submit(task);
        }



    }
}


执行玩脚本之后,下面的分析如下: alt