vic*_*ein 9 java multithreading
我们有一个处理请求的Java应用程序.当然,有一个带有线程的线程池,其中包含一些无关紧要的名称,如"processor-1","processor-2"等.我们想知道每次获取对名称的请求时重命名处理线程是否是个好主意.这将指示正在处理哪个请求.
我觉得它有些不对劲,但想不出一个好理由.我记得有几个从线程转储中分析多线程问题的案例,我知道是否在两个连续转储中看到相同的线程非常重要.但是,我意识到我可以查看线程ID.在log4j日志中,编写线程名称是一种常见做法,我记得很多过滤它的情况.但我仍然不确定这里有一条好的"防线".
常见的做法是什么?保持重命名线程是个好主意吗?
有一些相关的问题,比如在Java中重命名线程或者Java中的线程是否应该被命名以便于调试?但他们没有解决这个具体问题.
这是一个好主意。
线程名称的唯一目的是用于诊断,因此建议您以最佳方式命名/重命名线程,以帮助您了解运行时的状况。
特别是对于线程池中的线程。他们的身份毫无意义。在功能上等效于每个任务都有一个新线程。我们只关心任务名称,线程名称是存储任务名称的方便位置。
我会给每个线程一个有意义的但不是动态变化的名称。
存储有关正在处理的请求的信息听起来不错,但将其存储在线程名称中却很糟糕。您可以记录该信息,或将其存储在ThreadLocal,或...?
| 归档时间: |
|
| 查看次数: |
417 次 |
| 最近记录: |