有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

c#线程的命名约定?

为线程命名是很有帮助的,这样就可以区分哪些线程正在执行诊断和调试任务

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


共 (6) 个答案

  1. # 1 楼答案

    我倾向于使用与命名方法或变量相同的命名线程。选择一些简洁地描述线程负责的进程的内容。我不认为有很多额外的信息,你可以或应该把一个线程名。表达力强但简洁是首要目标

    唯一的约定可能是向池中的线程添加递增后缀

  2. # 2 楼答案

    那么:

    [名称空间]。【课堂】【课堂…】。[方法][当前线程]

    所以你有名字:

    生意。缓存。expiredAditems1
    生意。缓存。ExpiredAditems2
    生意。缓存。ExpiredAditems3

    等等,每一条线

  3. # 3 楼答案

    命名线程很有用,您应该遵循一种命名约定,这种约定适用于任何其他事物,比如变量、方法或类。根据他们所做的事情来命名,并且要简洁。如果遇到需要线程转储的问题,最好查看名称并知道在代码中查找问题的位置,而不是检查堆栈跟踪和猜测

    唯一不同的是,如果有多个相同类型的线程,您真的应该添加某种类型的索引,因为线程名称应该是唯一的,以满足某些API。如果显示线程名称以了解应用程序在不同线程上发生部分执行时的行为,它还可以帮助进行日志记录

  4. # 4 楼答案

    虽然Thorsten的答案是最全面的,但您可能想看看Tomcat如何命名其线程。我发现这很有用。我们使用quartz调度程序运行多个线程,Thorsten建议的许多命名规则都很有用

    你会使用线程池吗?如果是的话,那么这将减少你添加更多有用元信息的机会。如果没有,天空就是你能拥有多少有用信息的极限

  5. # 5 楼答案

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

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

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

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

    • 使线程名称易于grep-able。避免使用类似的线程名称

    • 如果您有几个性质相同的线程,请使用应用程序的一次执行或一个日志文件所特有的ID来枚举它们,以符合您的日志记录习惯的为准

    • 避免像“WorkerThread”这样的泛化(接下来的5个工作线程如何命名?),“GUIThread”(哪个GUI?是用于一个窗口还是用于所有窗口?)或者“计算”(它计算什么?)

    • 如果有一个测试组使用线程名对应用程序的日志文件进行grep处理,请不要在一段时间后重命名线程。你的测试人员会因为你这么做而憎恨你。经过良好测试的应用程序中的线程名称应该一直存在

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

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

  6. # 6 楼答案

    我在中看到了线程的几种命名约定。网

    有些人更喜欢在名字的开头使用“t”(例如,tMain Thread),但我认为它没有任何实际价值。 相反,为什么不直接使用简单的描述性名称(行变量),比如内务管理调度程序等等