我们有一个处理请求的Java应用程序。自然,有一个线程池,其中的线程使用一些无关紧要的名称命名,如"processor-1“、"processor-2”等。我们想知道,每次处理线程收到请求时,将其重命名为指示正在处理的请求的名称是否是一个好主意。
我有种不对劲的感觉,但我想不出一个好的理由。我记得从线程转储分析多线程问题的几个案例,知道在两个连续的转储中是否看到相同的线程对我来说非常重要。但是,我意识到我可以改为查看线程ID。在log4j日志中,写入线程名称是一种常见的做法,我还记得很多使用线程名称进行过滤的情况。但我仍然不确定我是否有一条很好的“防线”。
常见的做法是什么?保持对线程的重命名是个好主意吗?
有像Renaming Threads in Java或Should threads in Java be named for easier debugging?这样的相关问题,但它们没有解决这个特定的问题。
发布于 2011-06-06 09:47:49
这是个好主意。
线程名称的唯一目的是为了诊断,因此鼓励您以最好的方式命名/重命名线程,以帮助您了解运行时发生的事情。
尤其是对于线程池中的线程。他们的身份毫无意义。它在功能上等同于每个任务都有一个新线程。我们只关心任务名称,线程名称是存储任务名称的方便位置。
发布于 2011-06-06 03:29:27
我会给每个线程一个有意义的,但不是动态变化的名称。
存储关于正在处理的请求的信息听起来很好,但将其存储在线程名称中则很难闻。您可以记录该信息,或者将其存储在ThreadLocal中,或者...?
https://stackoverflow.com/questions/6245270
复制相似问题