Java中线程命名的最佳实践是什么?是否有任何命名约定?
答案 0 :(得分:7)
我会说一般的最佳实践是“选择好名字”,这适用于变量,方法,计算机,甚至可能是儿童(只要问我的儿子Gerund Extravagaza Smith)。
所以是的,如果可能的话,为你的线程选择有意义的名字。
假设我们要求文件或计算机的命名约定。您是否期望有一个普遍适用的答案?我认为您需要根据自己创建的线程生成自己的约定。
我会遵循这些一般原则:
最重要的部分首先
01-http-Listener
01-rmi-Listener
02-http-Listener
倾向于严重排序所以更喜欢Listener-http-01
答案 1 :(得分:5)
是的,命名线程肯定有助于识别它们,但有一个警告:确保给它们唯一的名称,因为如果你选择(或者可能是偶然的话),你可以使用多个线程的名称相同。
class Thread
:每个帖子都有一个名称用于识别目的。多个线程可能具有相同的名称。
为多个线程赋予相同的名称可能会使事情变得更糟,并导致混乱,而不是帮助调试。
答案 2 :(得分:4)
我在一个运行多个Java进程的系统上工作。使用log4j,我将所有输出路由到一个日志文件。
为了大致了解日志记录输出的来源,我使用log4java的源线程输出标志,它在调试消息之前打印源线程名称。
所以对我来说,使用好的线程名称至关重要。
答案 3 :(得分:4)
我主要在独立的Java应用程序上工作,有时完整的线程转储是我们调试问题的全部内容。线程名称也很重要。在你需要它们之前,它们是你没有真正考虑过的事情之一,你的所有线程都被命名为“Thread-145”等。
那就是说,我没有看到任何特定的命名约定。使用您稍后将会识别的内容,您可能不会重复使用名称。从名称中清楚地知道您期望在系统中有多少线程可能是值得的,因此您可以稍后判断是否存在“线程泄漏”。
答案 4 :(得分:1)
是的,命名线程是一种很好的做法。如果你已经使用过Eclipse Debug,并且你的java应用程序已经实现了线程,你可以清楚地看到线程与一些随机名称并行运行,“Thread”后跟一些数字序列。如果你能给出一个有意义的名字(你可能不得不使用一个序列,但那完全可以自定义并依赖于你),那么在调试时它会很有用。