如何更改ExecutorService中的线程名称?

Ren*_*ani 8 java multithreading executorservice

我正在使用ExecutorService来执行一些Callables,但是线程的名称就像fixed-pool-1-thread-1.

我如何更改线程的名称?如果不可能,还有另一种执行Callables的方法,我可以设置threadS的名称吗?

Edw*_*ale 13

例如,您必须使用ExecutorService允许您设置用于创建线程的ThreadFactory1的实现ThreadPoolExecutor.传递一个创建具有正确名称的线程的实例.

在commons-lang中还有一个方便的类,允许用模式指定线程名称:BasicThreadFactory.这使您不必创建ThreadFactory子类只是为了提供命名行为.


pat*_*rit 5

番石榴几乎总能满足您的需求.ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("my-sad-thread-%d").build()把它传递给你ExecutorService.