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

Sam*_*Sam 3 java multithreading threadpool

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

我查看了ThreadFactory界面,但是我无法将任何其他参数作为线程名称传递给创建的线程.另外,我看了DefaultThreadFactory上课.它使用an AtomicInteger来设置线程名称.

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

Bin*_*mas 7

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

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

这可能是你想要的.线程池创建的线程可能用于执行许多不同的任务 - 因此为线程提供一个名称,该名称取决于它最终将运行的任务.