java - ExecutorService 的线程和线程池命名

标签 java threadpool runnable executorservice managedthreadfactory

假设我有一个使用 Executor 框架的应用程序

Executors.newSingleThreadExecutor().submit(new Runnable(){
    @Override
    public void run(){
        // do stuff
    }
}

当我在调试器中运行此应用程序时,会使用以下(默认)名称创建一个线程:Thread[pool-1-thread-1]。如您所见,这并不是非常有用,据我所知,Executor 框架并没有提供一种简单的方法来命名创建的线程或线程池。

那么,如何为线程/线程池提供名称呢?例如,Thread[FooPool-FooThread].

最佳答案

Guava 几乎总是有你想要的 need .

ThreadFactory namedThreadFactory = 
  new ThreadFactoryBuilder().setNameFormat("my-sad-thread-%d").build()

并将其传递给您的 ExecutorService

关于java - ExecutorService 的线程和线程池命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6113746/

相关文章:

java - 安卓简单的游戏。图像按钮未点击。位图

java - 如何在 Java 中的现有文件中添加新的文本行?

java - 未设置共享首选项

c++ - 在 QThreadPool 中执行槽

Java Scanner 从字符串中获取数字

c# - 哪些结构使用 .NET 4 中的 ThreadPool?

java - 如何在tomcat提供的线程中设置一个Thread-local?

java - 无法转换为 ThreadPoolTask​​Executor

java - 线程化可运行对象方法不响应更改

java - 如何正确使用Handler