El event loop de asyncio: qué es y cómo funciona
El event loop gestiona coroutines y callbacks I/O usando epoll/kqueue del SO; aprende cómo suspende, monitorea y reanuda tareas sin bloquear el hilo.
El event loop gestiona coroutines y callbacks I/O usando epoll/kqueue del SO; aprende cómo suspende, monitorea y reanuda tareas sin bloquear el hilo.
Diferencia entre threading preemptivo y asyncio cooperativo, cómo el event loop gestiona coroutines, y por qué bloquear sin await rompe todo el sistema.
Todo lo que viaja entre procesos debe ser serializable con pickle; funciones locales y recursos del SO no lo son, y hay patrones concretos para cada caso.
Diferencias internas entre los tres start methods de multiprocessing, cuándo cada uno es seguro, y cómo el cambio de default en macOS 3.12 afecta código existente.
Mecanismos de comunicación entre procesos en Python: cuándo usar Queue, Pipe o shared memory, y el costo real de pickle en cada caso.
Cómo crear procesos individuales con `Process` y distribuir trabajo en paralelo con `Pool`, incluyendo `map`, `starmap`, `imap` y `apply_async`.
Cómo multiprocessing crea procesos reales para ejecutar trabajo CPU-bound en paralelo, y cuándo su overhead lo hace contraproducente.
Cómo funciona el modo free-threaded en Python 3.13, su costo real en rendimiento, y qué código se rompe al eliminar el GIL como sincronización implícita.
Cómo usar `ThreadPoolExecutor` para distribuir trabajo I/O-bound entre un pool de threads, gestionar futures y propagar excepciones correctamente.
Cómo usar `queue.Queue` para el patrón productor-consumidor sin locks manuales, incluyendo `task_done()`, `join()` y las variantes `LifoQueue` y `PriorityQueue`.