传统的多线程创建都是通过Runnable或Callable的子类来创建线程主体,然后利用Thread来包装线程主体,再进行多线程的执行。后面考虑到代码设计结果问题,一般通过工厂类来进行线程的创建,JUC开发包提供了一个ThredFactory工厂接口,利用该接口的子类可以创建一个线程工厂类。
/**
* @author qx
* @date 2023-04-22
* @Descripion: 定义线程工厂实现类
*/
class MyThreadFactory implements ThreadFactory{
// 线程工厂实现类对象
private static final MyThreadFactory INSTANCE = new MyThreadFactory();
// 线程标记名称
private static final String TITLE = "test-";
// 线程个数统计
private static int count = 0;
private MyThreadFactory(){}
public static MyThreadFactory getInstance(){
return INSTANCE;
}
@Override
public Thread newThread(Runnable r) {
return new Thread(r,TITLE+count++);
}
}
public class Demo {
public static void main(String[] args) {
// 工厂模式获取线程对象
Thread thread = MyThreadFactory.getInstance().newThread(() -> System.out.println("多线程执行:" + Thread.currentThread().getName()));
// 开启线程
thread.start();
}
}
结果:
多线程执行:test-0