为线程命名很有帮助,以便人们可以出于诊断和调试的目的整理出哪些线程在做什么。
在高度多线程的应用程序中,是否有一种比另一个应用程序更好的特定命名约定?有准则吗?线程名称应包含哪些信息?您对命名线程有什么了解,这可能会对其他人有所帮助?
据我所知,没有标准。随着时间的流逝,我发现这些准则会有所帮助:
使用短名称,因为它们不会使日志文件中的行太长。
在重要部分的开头创建名称。图形用户界面中的日志查看器通常具有带有列的表,并且线程列通常很小,或者您阅读其他内容后会变小。
不要在线程名称中使用单词“ thread”,因为它很明显。
使线程名称易于grep-able。避免使用相似的听起来线程名称
如果您有多个具有相同性质的线程,请使用适合您的日志记录习惯的一个应用程序或一个日志文件唯一的ID枚举它们。
避免使用诸如“ WorkerThread”(如何命名接下来的5个工作线程?),“ GUIThread”(哪个GUI?用于一个窗口?用于所有内容?)或“计算”(计算什么)之类的概括。
如果您有一个使用线程名来grep您的应用程序的日志文件的测试组,请不要在一段时间后重命名线程。您的测试人员会讨厌您这样做。经过良好测试的应用程序中的线程名称应该保留下来。
当您有为网络连接提供服务的线程时,请尝试在线程名称中包含目标网络地址(例如channel_123.212.123.3)。如果同一主机有多个连接,请不要忘记枚举。
如果您有很多线程而忘记命名,那么您的日志机制应改为输出唯一的线程ID(特定于API,例如,通过调用pthread_self())