ScheduledThreadPoolExecutor的构造函数之一允许我将 ThreadFactory 传递给它。
这有点奇怪,因为我已经在处理线程池了!这意味着它知道如何管理线程生命周期。
从我的角度来看,这看起来像是策略模式,允许我覆盖线程创建的逻辑,同时维护它提供的调度服务。
- 我说对了吗?
- Java中内置的ThreadFactories是什么?
谢谢!
ScheduledThreadPoolExecutor的构造函数之一允许我将 ThreadFactory 传递给它。
这有点奇怪,因为我已经在处理线程池了!这意味着它知道如何管理线程生命周期。
从我的角度来看,这看起来像是策略模式,允许我覆盖线程创建的逻辑,同时维护它提供的调度服务。
谢谢!
ThreadFactory
通常用作工厂模式来详细说明创建线程的方式。
一个典型的用例是逻辑地命名你的线程。
public WorkerThreadFactory implements ThreadFactory {
private int counter = 0;
public Thread newThread(Runnable r) {
return new Thread(r, "Worker" + "-" + count++);
}
}
这是一个非常详尽的用例列表。
ThreadFactory 的内置实现将是 Executors.defaultThreadFactory()
这些是它被使用的地方。
使用自定义线程工厂始终是一个好习惯。默认工厂用处不大。您应该使用自定义工厂,原因如下:
检查这篇文章:http ://wilddiary.com/understanding-java-threadfactory-creating-custom-thread-factories/