Samuel García (@SamRadioFloyd)
- Indeterminismo
- Recursos compartidos
CONCURRENCIA != PARALELISMO!!
- Necesarios cuando nos importa el orden de la ejecución.
- Dos tipos: Sincronización de datos y sincronización de procesos.
- Sincronización de procesos: forks y joins.
- Sincronización de datos: Recursos compartidos.
- Exclusión mutua
- Sección crítica
- Condiciones de carrera:
- Deadlocks - Busy waiting
- Livelocks - Priority inversion
- Starvation
- Hilos de ejecución.
- Procesos ligeros y procesos pesados
- Los hilos de Python son hilos POSIX (o Windows para los raritos)
- MAL
- See GIL
- Global Interpreter Lock
- El intérprete de Python solo puede ejecutar un hilo a la vez.
- El GIL asegura acceso único a las tripas del intérprete.
- Python no tiene un thread scheduler (en cristiano, no podemos priorizar hilos ni cosas complicadas).
- Toda la gestión de los hilos depende del SO.
By samgh96