Goroutines in Prolog
Concurrencia de Tareas Ligeras (Goroutines) en Python
Una gorutina es un hilo liviano de ejecución. Supongamos que tenemos una función llamada f(s)
. Aquí se muestra cómo llamarla de la manera usual, ejecutándola de forma síncrona.
Cuando ejecutamos este programa, vemos primero la salida de la llamada bloqueante, y luego la salida de los dos hilos. La salida de los hilos puede intercalarse, porque están siendo ejecutados simultáneamente por el runtime de Python.
En el próximo ejemplo, veremos un complemento a los hilos en programas concurrentes: colas y comunicaciones entre hilos.
Nota
: En Python, se usan hilos del módulothreading
para obtener funcionalidad similar a las gorutinas. Además,time.sleep
se usa para esperar a que los hilos terminen, pero en una aplicación más robusta deberíamos considerar el uso dequeue.Queue
oconcurrent.futures.ThreadPoolExecutor
para manejar tareas concurrentes.