当前位置: 首页 > 面试题库 >

线程的命名约定?

穆理
2023-03-14
问题内容

为线程命名很有帮助,以便人们可以出于诊断和调试的目的整理出哪些线程在做什么。

在高度多线程的应用程序中,是否有一种比另一个应用程序更好的特定命名约定?有准则吗?线程名称应包含哪些信息?您对命名线程有什么了解,这可能会对其他人有所帮助?


问题答案:

据我所知,没有标准。随着时间的流逝,我发现这些准则会有所帮助:

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

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

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

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

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

  • 避免使用诸如“ WorkerThread”(如何命名接下来的5个工作线程?),“ GUIThread”(哪个GUI?用于一个窗口?用于所有内容?)或“计算”(计算什么)之类的概括。

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

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

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



 类似资料:
  • 1.【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 反例: _name / __name / $Object / name_ / name$ / Object$ 2.【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。 说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。 注意,即使纯拼音命名方式也要避免采用。 反例: DaZheP

  • 主要内容:1 如何获取线程名称,2 获取线程名称的例子1 如何获取线程名称 Thread类提供了更改和获取线程名称的方法。默认情况下,每个线程都有一个名称,即thread-0,thread-1等。通过使用setName()方法,我们可以更改线程的名称。setName()和getName()方法的语法如下: public String getName():用于返回线程的名称。 public void setName(String name):用于更改线

  • 问题内容: 是否可以给AsyncTask的后台线程起一个名字,就像Java中的普通线程一样: 我已经看过AsyncTask的代码,默认构造函数只是默认提供一个名称 我想这样做,因为在调试时,我想知道哪个Asynctask正在访问助手类中的方法。 问题答案: 尝试从内部调用此方法:

  • 为了在跨API开发中向开发者提供一致的开发体验,所有的命名应该保证: 简单 直观 一致 这适用于接口、资源、集合、方法以及消息的命名。 因为很多开发者并非以英语作为母语,所以命名约定的目标之一是确保大多数开发者可以更容易理解 API。对于方法和资源,我们鼓励使用简单、直观和一致的单词来命名。 API 中的命名应该使用正确的美式英语。例如,使用美式英语的 license 而非英式英语的 licenc

  • 在本节,我们不会讨论适用于大规模和可维护的最佳 CSS 命名方案,因为这不仅仅超过了个人的能力范围,也不是一个Sass样式指南可以解决的问题。我个人推荐遵从 CSS Guidelines 的建议。 良好的命名对保持整体代码的一致性和可读性非常重要,在 Sass 中可以命名的地方如下: 变量; 函数; 混合宏。 由于 Sass 占位符遵循和类名相同的命名模式,因此被视为常规的 CSS 选择器,也就在

  • 函数名 小技巧 使用小写字母,并用下划线分隔单词。使用双冒号 :: 分隔库。函数名之后必须有圆括号。关键词 function 是可选的,但必须在一个项目中保持一致。 如果你正在写单个函数,请用小写字母来命名,并用下划线分隔单词。如果你正在写一个包,使用双冒号 :: 来分隔包名。大括号必须和函数名位于同一行(就像在Google的其他语言一样),并且函数名和圆括号之间没有空格。 # Single fu