Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Por qué Python Gil sigue utilizando subprocesos múltiples?

¿Por qué Python Gil sigue utilizando subprocesos múltiples?

La función de GIL es que solo un hilo de un intérprete puede ejecutar código de bytes. Entonces, en cualquier momento solo se ejecuta un código de bytes y se ejecuta un hilo. El GIL garantiza que el código de bytes sea seguro para subprocesos en esta capa.

Pero si tiene una operación como x += 1, esta operación requiere múltiples operaciones de código de bytes, y el hilo puede cambiarse a mitad de camino durante la ejecución de múltiples códigos de bytes para esta operación, por lo que esto ocurre contención de datos. situación.

Por ejemplo, este pequeño tiene mucho código de bytes:

& gt& gt& gtdis .

1 0 LOAD_FAST 0. ( x)

3 Carga constante 1 (1)

6 Binary_addition

7 Valor de retorno