¿No sabes qué es Python GIL?  Este puede ser el tutorial más sencillo |  de Christopher Tao |  febrero de 2024

Ilustración de subprocesamiento, procesamiento y GIL de Python mediante diagramas

No huyas si eres un estudiante de Python, porque este artículo pretende utilizar la forma más sencilla de explicarte qué es GIL. Por supuesto, hay que empezar explicando qué son los hilos y los procesos. No te preocupes, haré todo lo posible para que sea fácil para todos, aunque sacrifica cierta precisión en la definición.

Ahora deberíamos empezar.

Imagen por Steen Jepsen de Pixabay

Algunos conceptos

El subproceso múltiple es una de las técnicas de programación más comunes, que también existe en Python.

Nos permite ejecutar múltiples operaciones simultáneamente. Por lo general, los subprocesos múltiples pueden generar una mayor eficiencia en el uso de la CPU. Además, la mayoría de las tareas de E/S pueden beneficiarse de la ejecución simultánea de subprocesos.

Por favor, no se confunda con los conceptos “proceso” y “hilo”. Un proceso tendrá cierta memoria asignada y estará completamente aislado de otros procesos en un sistema operativo. Por lo tanto, un programa bloqueado en nuestro sistema operativo normalmente no afectará a los demás.

Relaciones entre procesos y subprocesos

A proceso puede tener múltiples hilos ejecutándose bajo él, compartiendo muchos de los mismos recursos como la memoria. Por lo tanto, un hilo aplastado hará que todo el proceso se aplaste. Debido a que los subprocesos comparten memoria entre sí, también pueden crear problemas en el proceso. Lo demostraré más tarde.

Ejemplo de código

Ahora, veamos cómo escribir código Python con la técnica de subprocesos múltiples.

En primer lugar, importemos el threading módulo integrado en Python.

import threading

Para poder probar el subproceso múltiple, definamos una función que sea bastante simple pero que llevará algo de tiempo.

def compute()…