package com.sunup.jbasis.concurrent;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.ThreadFactory;
/**
* @author lime
* <p>
* ThreadFactory充当线程(不存在)池,它根据需要创建新线程。它消除了大量样板编码的需要,以实现有效的线程创建机制。
*/
@Slf4j
public class ThreadFactoryTest {
public static void main(String[] args) {
//使用这个newThread(Runnable r)方法在运行时创建一个新线程:
BaeldugnThreadFactory factory = new BaeldugnThreadFactory("BaeldugnThreadFactory");
for (int i = 0; i < 10; i++) {
Thread t = factory.newThread(new Task());
t.start();
}
}
static class BaeldugnThreadFactory implements ThreadFactory {
private int threadId;
private String name;
public BaeldugnThreadFactory(String name) {
threadId = 1;
this.name = name;
}
@Override
public Thread newThread(Runnable r) {
Thread thread = new Thread(r, name + "-Thread_" + threadId);
log.info("创建新线程的id " + threadId + " 名称 " + thread.getName());
threadId++;
return thread;
}
}
static class Task implements Runnable {
@Override
public void run() {
log.info("创建");
}
}
}
Java并发 七 ThreadFactory
最新推荐文章于 2022-01-14 22:22:05 发布