【问题标题】:How to change the thread names of the standard JDK corba ORB threadpool如何更改标准JDK corba ORB线程池的线程名称
【发布时间】:2015-06-17 17:16:46
【问题描述】:

是否可以设置默认线程池中使用的标准 jdk corba ORB 的线程名称?

默认情况下,每个连接有 3 个线程。他们的名字毫无用处,因为他们总是默认为:p:default-threadpool; w: Idle。主要出于调试原因更改它们的名称会很棒。

查看 JDK com.sun.corba.se.impl.orbutil.threadpool.ThreadpoolManagerImpl 源代码,我可以看到无法从类外部访问该名称。目前,一旦我控制了线程,我就使用Thread.currentThread().setName() 来设置线程名称,但这似乎是一个hack。有没有更好的办法?

【问题讨论】:

    标签: java multithreading corba


    【解决方案1】:

    您可以遍历当前正在运行的线程并根据需要重命名它们。比如:

    int counter = 1;
    for (Thread t : Thread.getAllStackTraces().keySet()) {
      if (t.getName().startsWith("p:default-threadpool")) t.setName("Corba #" + counter++);
    }
    

    【讨论】:

    • 我不知道这种方式。感谢那! ...但是我仍然无法完全识别线程并设置正确的名称。更具体地说,ORB 为每个连接的每个线程池创建 3 个线程。这意味着如果我有 2 个连接,我将获得 6 个线程。不幸的是,所有 6 个名称都相同,所以我无法区分它们属于哪个连接。
    • @Kostas 我明白了 - 我不知道该怎么做。
    猜你喜欢
    • 2010-10-03
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 2012-08-11
    • 2012-01-21
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多