visual studio programar programacion practicas para notacion nomenclatura indentación hungara estándares codigos basicos c# java multithreading

studio - notacion hungara para c#



Convenciones de nombres para hilos? (7)

Hmmm ... En las aplicaciones con varios subprocesos que he escrito, generalmente he tenido varios subprocesos ejecutando la misma función, por lo que no estoy seguro de que nombrar subprocesos sea muy útil en ese escenario. Dicho esto, asigné a cada hebra un ID entero que se imprimió en los mensajes de registro generados por el hilo para ayudar en la depuración.

Para otras aplicaciones que tenían hilos con funciones exclusivas dedicadas, sí las nombré descriptivamente ... pero no lo hice porque era una aplicación enhebrada, lo hice porque es una mejor práctica de codificación para hacerlo.

Es útil nombrar los hilos para que uno pueda determinar qué hilos están haciendo qué para fines de diagnóstico y depuración.

¿Existe una convención de nomenclatura específica para hilos en una aplicación con múltiples subprocesos que funciona mejor que otra? ¿Alguna guía? ¿Qué tipo de información debe ir en el nombre de un hilo? ¿Qué has aprendido sobre cómo nombrar tus hilos que podrían ser útiles para otros?


No tengo conocimiento de que exista un estándar. Con el tiempo, he encontrado que estas pautas son útiles:

  • Use nombres cortos porque no hacen que las líneas en un archivo de registro sean demasiado largas.

  • Crea nombres donde la parte importante está al principio. Los lectores de registro en una interfaz gráfica de usuario tienden a tener tablas con columnas, y la columna de subprocesos suele ser pequeña o pequeña para que pueda leer todo lo demás.

  • No use la palabra "hilo" en el nombre del hilo porque es obvio.

  • hacer que los nombres de los hilos sean fácilmente grep-able. Evite nombres de hilos que suenen similares

  • si tiene varios hilos de la misma naturaleza, enuémbrelos con los ID que son únicos para una ejecución de la aplicación o un archivo de registro, lo que se ajuste a sus hábitos de registro.

  • evite generalizaciones como "WorkerThread" (¿cómo nombra los siguientes 5 hilos de trabajo?), "GUIThread" (¿qué GUI? ¿es para una ventana? ¿para todo?) o "Cálculo" (¿qué calcula?).

  • si tiene un grupo de prueba que usa nombres de subprocesos para grep los archivos de registro de su aplicación, no cambie el nombre de sus subprocesos después de un tiempo. Tus probadores te odiarán por hacerlo. Los nombres de los hilos en aplicaciones bien probadas deberían estar allí para quedarse.

  • cuando tiene hilos que sirven una conexión de red, intente incluir la dirección de red de destino en el nombre de la secuencia (por ejemplo, channel_123.212.123.3). Sin embargo, no se olvide de la enumeración si hay múltiples conexiones con el mismo host.

Si tiene muchos subprocesos y olvidó nombrar uno, su mecanismo de registro debería mostrar un Id. De subproceso único en su lugar (específico de API, p. Ej. Llamando a pthread_self ())


Nombrar hilos es útil y debes seguir una convención de nomenclatura que sea para cualquier otra cosa, ya sean variables, métodos o clases. Nómbrelos de acuerdo a lo que hacen y sean concisos. Si alguna vez se encuentra con un problema que requiere un volcado de hilo, será bueno mirar el nombre y saber dónde buscar en su código el problema en lugar de examinar las trazas de la pila y adivinar.

Lo único diferente es que si hay varios hilos del mismo tipo, realmente debería agregar un índice de algún tipo, ya que los nombres de los hilos deberían ser únicos para satisfacer ciertas API. También puede ayudar con el registro si muestra el nombre de la secuencia para saber cómo se comporta su aplicación y la ejecución parcial ocurre en diferentes hilos.


Tiendo a denominar los hilos de la misma manera que nombrando métodos o variables. Elija algo que describa concisamente el proceso del cual es responsable el hilo. No creo que haya mucha información adicional que puedas o debas poner en un nombre de tema. Expresivo pero cortante es el objetivo principal.

La única convención podría ser agregar un sufijo incrementado a los hilos que forman parte de un conjunto.


mientras que la respuesta de Thorsten es la más completa, es posible que desee ver cómo Tomcat nombra sus hilos. Lo encontré útil. Estábamos ejecutando varios hilos con un programador de cuarzo y muchas de las reglas de nombres que Thorsten sugiere fueron útiles.

¿Vas a utilizar un grupo de subprocesos? Si es así, eso reducirá las posibilidades de que pueda agregar más meta información útil. Si no, el cielo es el límite de la cantidad de información útil que puede tener.


Qué pasa:

[namespace]. [Class] [. Class ...]. [Method] [current thread]?

Entonces tienes los nombres:

Biz.Caching.ExpireDeadItems1
Biz.Caching.ExpireDeadItems2
Biz.Caching.ExpireDeadItems3

etc., para cada hilo.


He visto varias convenciones de nombres para hilos en .NET.

Algunos prefieren usar ''t'' en el comienzo del nombre (por ejemplo, tMain Thread ) pero no creo que tenga ningún valor real. En su lugar, ¿por qué no usar simplemente nombres descriptivos simples (variables de línea) como HouseKeeping , Scheduler y demás?