4. Hilo

Se conocen como hilo o hebra (del inglés thread), a un concepto en los Sistemas Operativos.

En este contexto, un proceso recibe el nombre de proceso pesado, mientras que un hilo recibe el nombre de proceso ligero.

El término hilo se refiere sintáctica y semánticamente a hilos de ejecución.

El término multihilo hace referencia a la capacidad de un SO para mantener varios hilos de ejecución dentro del mismo proceso.

¿Que es un hilo?

Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, la situación de autenticación, etc.
Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.
Un hilo es simplemente una tarea que puede ser ejecutada al mismo tiempo que otra tarea.
Los hilos, a diferencia de los procesos, no son independientes entre sí.

Ventajas de los hilos sobre los procesos.

Se tarda mucho menos tiempo en crear un nuevo hilo en un proceso existente que en crear un nuevo proceso.
Se tarda mucho menos tiempo en terminar un hilo que un proceso.
Se tarda mucho menos tiempo en conmutar entre hilos de un mismo proceso que entre procesos.
Los hilos hacen más rápida la comunicación ya que al compartir memoria y recursos, se pueden comunicar entre sí sin invocar el núcleo del SO.

Recordar que los procesos no se pueden comunicar directamente por que no coexisten con el mismo estado running o ejecución, es por eso que la comunicación entre hilos es importante.

Ejemplo:

Una aplicación puede tener un hilo en background chequeando automáticamente la gramática de lo que se escribe, mientras otro hilo puede estar guardando automáticamente los cambios del documento en el que se trabaja.