Saltar la navegación

2.- Conceptos sobre hilos.

Caso práctico

Foto de Juan mirando al frente.

Juan, que ya colaboró hace unos años junto a Ada en el desarrollo de una aplicación de gestión de servidores utilizando programación multihilo, sabe que esta técnica de programación es muy poderosa, pero también peligrosa, por lo que es muy importante tener claros todos los conceptos relacionados con ella.

Aunque Juan sabe que Ana ya ha estudiado en el ciclo DAM este tema le pregunta —¿Qué te parece si comenzamos repasando los conceptos básicos sobre hilos, las ventajas que aportan sobre los procesos y cuando interesa utilizarlos?

Ana responde: —¡Me parece genial!, un repaso me vendrá muy bien, además... ¡me muero de ganas por empezar.

Pero ¿qué es realmente un hilo? Un hilo, denominado también subproceso, es un flujo de control secuencial independiente dentro de un proceso y está asociado con una secuencia de instrucciones, un conjunto de registros y una pila.

Cuando se ejecuta un programa, el Sistema Operativo crea un proceso y también crea su primer hilo, hilo primario, el cual puede a su vez crear hilos adicionales.

Desde este punto de vista, un proceso no se ejecuta, sino que solo es el espacio de direcciones donde reside el código que es ejecutado mediante uno o más hilos.

Por lo tanto podemos hacer las siguientes observaciones:

  • Un hilo no puede existir independientemente de un proceso.
  • Un hilo no puede ejecutarse por si solo.
  • Dentro de cada proceso puede haber varios hilos ejecutándose.

Un único hilo es similar a un programa secuencial; por si mismo no nos ofrece nada nuevo. Es la habilidad de ejecutar varios hilos dentro de un proceso lo que ofrece algo nuevo y útil; ya que cada uno de estos hilos puede ejecutar actividades diferentes al mismo tiempo. Así en un programa un hilo puede encargarse de la comunicación con el usuario, mientras que otro hilo transmite un fichero, otro puede acceder a recursos del sistema (cargar sonidos, leer ficheros, …), etc.

Representación gráfica de tres procesos, con dos,. uno y tres hilos respectivamente
Representación gráfica de un programa con dos hilos de ejecución, uno transmite un fichero y el otro atiende al usuario.

Para saber más

No dejes de visitar el siguiente enlace con la definición de Hilo de ejecución en la wikipedia.

Hilo de ejecución.

Autoevaluación

Señala si la afirmación siguiente es verdadera o falsa:

Pregunta 1

Los hilos siempre están asociados a un proceso en particular .