多线程的执行类需要实现Runnable或Callable接口标准,所以为了进一步规划线程类的对象产生,JUC提供了一个ThreadFactory接口,利用此接口可以获取Thread类的实例化对象。该接口定义如下:
public interface ThreadFactory{
/**
* 传入Runnable接口实例创建Thread类实例
* @param r
* @return
*/
public Thread newThread(Runnable run);
}
1、使用ThreadFactory创建线程的例子:
package com.mydemo;
import java.util.concurrent.ThreadFactory;
public class JUCDemo {
public static void main(String[] args) {
Thread thread = DefaultThreadFactory.getInstance().newThread(
() -> {
System.out.println("多线程执行---" + Thread.currentThread().getName());
}
);
thread.start();
}
}
// 定义线程工厂实现类
class DefaultThreadFactory implements ThreadFactory {
private static final ThreadFactory INSTANCE = new DefaultThreadFactory();
// 定义线程标记名称
private static final String TITLE = "test";
// 线程个数统计
private static int count = 0;
/**
* 无参构造
*/
public DefaultThreadFactory() {
}
public static ThreadFactory getInstance() {
return INSTANCE;
}
@Override
public Thread newThread(Runnable run) {
// 获取线程实例
return new Thread(run, TITLE + (count++));
}
}
运行结果:
多线程执行---test0