java - 任务 ID 作为线程池中的线程名称

标签 java multithreading threadpool

我需要从线程池创建一个线程,并且需要传递一个任务 ID - 一个保存在我的 Runnable 对象中的唯一 ID - 作为线程名称。

我查看了 ThreadFactory 接口(interface),但我无法将任何附加参数作为线程名称传递给创建的线程。此外,我查看了 DefaultThreadFactory 类。它使用 AtomicInteger 来设置线程名称。

我能否将任意字符串传递给工厂并让它使用该字符串作为创建的线程的名称?

最佳答案

您可以将执行任务的线程的名称设置为:

class YourTask implements Runnable {
  public void run() {
    Thread.currentThread().setName(getTaskId());
    //.. rest of the code for the task
  }
}

无论如何,这可能就是您想要的。线程池创建的线程可能用于执行许多不同的任务 - 因此不可能为线程指定一个依赖于它最终将运行的任务的名称。

关于java - 任务 ID 作为线程池中的线程名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11964599/

相关文章:

java - Java固定大小的线程池和所有CPU内核的最佳用法

c# - HttpClient.PostAsync ThreadPool 中没有足够的空闲线程来完成操作

java - 在spring mvc中如何在 Controller 中获取上下文路径

multithreading - 在 Rust 中,线程中使用的所有内容都必须是 `Send` 吗?

java - Java ThreadPoolExecutor [提交的内容超过MaxPoolSize]

c - 我可以用什么来等待创建所有线程?

java - MyRunnable 中的 Run 方法未调用

java - C# DES 与 Java DES Byte[] 和 BlockSize 不同

java - 如何更改 Eclipse 上的 SDK 应用程序引擎

java - Project Reactor - 有状态地组合两个发布者并发出结果