1

ScheduledThreadPoolExecutor的构造函数之一允许我将 ThreadFactory 传递给它。

这有点奇怪,因为我已经在处理线程池了!这意味着它知道如何管理线程生命周期。

从我的角度来看,这看起来像是策略模式,允许我覆盖线程创建的逻辑,同时维护它提供的调度服务。

  1. 我说对了吗?
  2. Java中内置的ThreadFactories是什么?

谢谢!

4

2 回答 2

4

ThreadFactory通常用作工厂模式来详细说明创建线程的方式。

一个典型的用例是逻辑地命名你的线程。

public WorkerThreadFactory implements ThreadFactory {
   private int counter = 0;

   public Thread newThread(Runnable r) {
     return new Thread(r, "Worker" + "-" + count++);
   }
}

是一个非常详尽的用例列表。

ThreadFactory 的内置实现将是 Executors.defaultThreadFactory()

这些是它被使用的地方。

于 2012-08-06T06:04:52.263 回答
0

使用自定义线程工厂始终是一个好习惯。默认工厂用处不大。您应该使用自定义工厂,原因如下:

  1. 拥有自定义线程名称
  2. 在螺纹类型之间进行选择
  3. 选择线程优先级
  4. 处理未捕获的异常

检查这篇文章:http ://wilddiary.com/understanding-java-threadfactory-creating-custom-thread-factories/

于 2014-09-12T10:57:44.643 回答