c# - 线程的命名约定?

标签 c# java multithreading

命名线程很有帮助,这样人们就可以分清哪些线程正在为诊断和调试目的做什么。

在多线程应用程序中,是否有特定的线程命名约定比另一个更好?有什么指导方针吗?什么样的信息应该包含在线程的名称中?在命名线程方面,您学到了哪些对其他人有帮助的知识?

最佳答案

据我所知,没有标准。随着时间的推移,我发现这些指南很有帮助:

  • 使用短名称,因为它们不会使日志文件中的行过长。

  • 在重要部分的开头创建名称。图形用户界面中的日志查看器往往具有带有列的表,并且线程列通常很小,或者您可以将其变小以阅读其他所有内容。

  • 不要在线程名称中使用“线程”一词,因为它很明显。

  • 使线程名称易于使用 grep。避免听起来相似的线程名称

  • 如果您有多个相同性质的线程,请使用对应用程序的一次执行或一个日志文件唯一的 ID 枚举它们,以适合您的日志记录习惯。

  • 避免泛化诸如“WorkerThread”(你如何命名接下来的 5 个工作线程?)、“GUIThread”(哪个 GUI?它用于一个窗口?用于所有东西?)或“Calculation”(它是做什么的?计算?)。

  • 如果您有一个使用线程名称来 grep 应用程序日志文件的测试组,请不要在一段时间后重命名您的线程。您的测试人员会因此而讨厌您。经过良好测试的应用程序中的线程名称应该保留。

  • 当您有服务于网络连接的线程时,请尝试在线程名称中包含目标网络地址(例如 channel_123.212.123.3)。如果有多个连接到同一主机,请不要忘记枚举。

如果您有许多线程并且忘记命名一个,您的日志机制应该输出一个唯一的线程 ID(特定于 API,例如通过调用 pthread_self())

关于c# - 线程的命名约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/149932/

相关文章:

java - 在这种情况下,正确的 Java 集合是什么?

c# - C# 中是否有用于在给定线程上引发异常的好方法

java - spark java api 有像 hadoop MultipleOutputs/FSDataOutputStream 这样的类吗?

c - 多线程程序中不接收UDP并输出数据

c# - 在 Entity Framework 中测试预先存在的记录的最佳方法是什么?

c# - 如何在 F# 代码中使用 Microsoft Coyote - 父类型中 protected 嵌套属性类型

C# 如何为违反 Equals 契约的类选择 Hashcode?

c# - Azure Blob 存储 403 身份验证失败

java - 将字符串分组到数组中

java - 从 FreeMarker 上的 CSS 代码中删除换行符?