如何更改标准JDK corba ORB线程池的线程名称
Posted
技术标签:
【中文标题】如何更改标准JDK corba ORB线程池的线程名称【英文标题】:How to change the thread names of the standard JDK corba ORB threadpool 【发布时间】: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。有没有更好的办法?
【问题讨论】:
【参考方案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 我明白了 - 我不知道该怎么做。以上是关于如何更改标准JDK corba ORB线程池的线程名称的主要内容,如果未能解决你的问题,请参考以下文章