Un hilo es simplemente una rutina que permite ejecutar tareas simultáneamente. La utilización de hilos permite ejecutar tareas en paralelo y compartir los recursos durante la ejecución.
Los sistemas operativos hacen uso de los hilos permanentemente, ya que necesita hacer varias tareas simultáneamente. Estos hilos funcionan como una cola, en donde cada tarea que se anexa al hilio espera su turno para ser ejecutada. Cuando varios hilos comparten algún recurso, si alguno de ellos modifica el recurso, inmediatamente los demás hilos sabrán del cambio y se verán afectados.
Cada hilo de ejecución tiene un puntero de instrucciones (Contador de programa), encargado de indicar el estado o posición dentro de la secuencia de instrucciones perteneciente al hilo. También tiene una pila de llamadas, donde se registra la secuencia de subrutinas y el punto de retorno de cada una de ellas. Por ultimo cada hilo tiene acceso a la CPU y a el valor de los registro de manera independiente.
Para ver en detalle como funciona un hilo y que características y ventajas tiene frente a los procesos vamos a crear un ejemplo practico para visualizarlo.
Los hilos se utilizan frecuentemente para generar respaldos… por ejemplo, estamos ahora editando un archivo csv, abrimos un programa de hoja de cálculo; suites como Office, LibreOffice, OpenOffice implementan este sistema, hasta aplicaciones en la nube, es decir que crean un hilo donde se guarda el documento de respaldo y mientras editas el archivo en cada cambio que vas haciendo va guardando una copia temporal, en caso de que el archivo se cierre inesperadamente el trabajo realizado no se perderá.
Bueno, esto fue un pequeño resumen introductorio a lo que son los hilos. Si quieres mas información, como siempre puedes referirte a la Wikipedia o al omnisciente Google y no olvides dejar tus aportes o inquietudes en los comentarios.