我需要从线程池创建一个线程,并且需要传递一个任务 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/