JAVA:如何设置线程名称(RMI)?

时间:2012-07-30 08:01:20

标签: java multithreading distributed

经过我的研究和讨论here我决定需要为不同JVM上的线程设置相同的名称,这些JVM属于分布式系统中的同一控制流。创建线程,例如通过RMI。是否可以在以这种方式创建线程时设置名称?

2 个答案:

答案 0 :(得分:2)

没有自动方法从客户端到服务器传输此信息。

听起来你想要/需要在客户端上建立某种Context对象(每个线程?)并作为方法参数传递给你的RMI服务器。 Context对象不仅可以包含线程名称,还可以包含调用进程pid等其他信息。

然后,您必须使用该Context对象通过Thread.setName()相应地设置线程名称等。继续前进,您可以使用此功能在日志框架中设置特定于上下文的信息(例如,使用Log4j nested diagnostic contexts

使用方面来进一步自动化将留给读者进一步练习: - )

答案 1 :(得分:0)

Thread类有setName(String)的静态方法。如果你可以拥有你的线程,无论它们来自何处,运行该方法,你应该很高兴。 These guys与Tomcat相关的线程有类似的问题。