【发布时间】:2012-07-27 21:13:32
【问题描述】:
经过here的研究和讨论,我决定需要为分布式系统中属于同一控制流的不同JVM上的线程设置相同的名称。创建线程,例如通过 RMI。以这种方式创建线程时是否可以设置名称?
【问题讨论】:
标签: java multithreading distributed
经过here的研究和讨论,我决定需要为分布式系统中属于同一控制流的不同JVM上的线程设置相同的名称。创建线程,例如通过 RMI。以这种方式创建线程时是否可以设置名称?
【问题讨论】:
标签: java multithreading distributed
没有自动方法将此信息从客户端传输到服务器。
听起来您想要/需要在客户端(每个线程?)上设置某种 Context 对象,并作为方法参数传递给您的 RMI 服务器。 Context 对象不仅可以包含线程名称,还可以包含其他信息,例如调用进程 pid 等。
然后,您必须使用该Context 对象通过Thread.setName() 相应地设置线程名称等,一旦它通过网络传递。展望未来,您可以使用它在您的日志框架中设置特定于上下文的信息(例如,使用 Log4j nested diagnostic contexts)
使用方面来进一步自动化这件事留给读者进一步练习:-)
【讨论】:
@around 方面添加日志记录,因为我需要测量执行时间。那么是否可以使用方面设置线程名称(连接到一个请求的所有线程的一个名称)?这个名字怎么传?
Thread 类有一个setName(String) 的静态方法。如果您可以让线程(无论它们来自何处)运行该方法,那么您应该很高兴。 These guys 与 Tomcat 相关的线程有类似的问题。
【讨论】: