Contenidos
Recursos compartidos por los hilos
Los recursos de los hilos dependen del proceso que los ejecuta y pueden ser cualquier recurso de los que disponga el sistema operativo, ficheros, memoria, periféricos, etc.
Estados de un hilo. Cambios de estado
Los hilos cambian de estado a lo largo de su ejecución, los estados pueden ser:
- Nuevo: el hilo ha sido creado pero no inicializado, es decir, no se ha ejecutado todavía el método que lo inicia.
- Ejecutable: el hilo puede estar ejecutándose, siempre y cuando se le haya asignado un determinado tiempo de CPU.
- Bloqueado: el hilo podría estar ejecutándose, pero hay alguna actividad interna suya que lo impide, como por ejemplo una espera producida por una operación de escritura o lectura de datos por teclado (E/S).
- Muerto: la forma habitual de que un hilo muera es finalizando con la tarea que está realizando, también se puede parar de forma abrupta no es recomendable.
Elementos relacionados con la programación de hilos. Librerías y clases
La programación de los hilos depende del lenguaje de programación que se utilice y el sistema operativo sobre el que se programa.
Gestión de hilos
Las operaciones básicas sobre hilos son:
- Creación y arranque de hilos. Todos los programas que se ejecutan tienen un hilo de ejecución principal.
- Espera de hilos. Como varios hilos comparten el mismo procesador o núcleo, puede ser que haya que poner a la espera el hilo si no tiene trabajo que hacer.
Ejercicios
- https://www.jesusninoc.com/01/01/ejercicios-de-powershell-ejercicios-de-hilos/
- Crear un hilo implementando el interfaz Runnable
- Crear un hilo heredando de la clase Thread
- https://www.jesusninoc.com/06/20/creacion-y-destruccion-de-hilos-en-linux-con-c/
- https://www.jesusninoc.com/04/03/ejecutar-un-codigo-sobre-un-contenedor-docker-con-php-y-la-extension-pthreads/
Más información
- https://www.jesusninoc.com/07/07/7-gestion-de-procesos-en-powershell/#Hilos
- https://www.jesusninoc.com/06/20/creacion-y-destruccion-de-hilos-en-linux-con-c/
- https://www.jesusninoc.com/10/03/crear-hilos-desde-c/
- https://www.jesusninoc.com/09/21/tutorial-c-con-powershell-crear-un-hilo/
Sincronización de hilos
Los hilos se comunican mediante el intercambio de información a través de variables y objetos en memoria a los que se accede de forma sincronizada. Sin sincronización los resultados pueden no ser los esperados.
Ejercicios
Sincronizar un productor y un consumidor
Más información
- https://www.jesusninoc.com/01/07/crear-y-ejecutar-un-hilo-en-java-sin-sincronizacion/
- https://www.jesusninoc.com/01/08/crear-y-ejecutar-un-hilo-en-java-con-sincronizacion/
Compartición de información entre hilos
Los hilos se comunican mediante el intercambio de información a través de variables y objetos en memoria.
Programación de aplicaciones multihilo
La programación de los hilos depende del lenguaje de programación que se utilice y el sistema operativo sobre el que se programa.