python multithreading jython

python concurrency



¿Tiene Jython el GIL? (4)

Google está realizando una implementación de Python que es un código modificado con mejoras en el rendimiento llamado tragar sin carga. Esto se encargará de eliminar el GIL. Ver: golondrina sin carga.

Estaba seguro de que no era así, pero buscar una respuesta definitiva en las Interwebs me dejó en duda. Por ejemplo, recibí una publicación en 2008 que parecía una broma a primera vista pero parecía ser seria al mirar más de cerca.

Edit: ... y resultó ser una broma después de mirar aún más de cerca . Perdón por la confusion. En realidad, los comentarios en esa publicación responden a mi pregunta, como Nikhil ha señalado correctamente.

Nos dimos cuenta de que CPython está muy por delante de nosotros en esta área y de que carecemos de compatibilidad. Después de una seria lluvia de ideas (y unas copas de vino), decidimos que la introducción de un bloqueo global de intérpretes en Jython resolvería el problema.

Ahora, ¿cuál es el estado aquí? La página de "diferencias" en sourceforge no menciona a GIL en absoluto. ¿Hay alguna fuente oficial que haya pasado por alto?

Tenga en cuenta también que estoy al tanto de la discusión en curso acerca de si el GIL importa o no, pero por el momento no me importa.


La cita que encontraste fue de hecho una broma, aquí hay una demostración de la implementación de GIL de Jython:

Jython 2.5.0 (trunk:6550M, Jul 20 2009, 08:40:15) [Java HotSpot(TM) Client VM (Apple Inc.)] on java1.5.0_19 Type "help", "copyright", "credits" or "license" for more information. >>> from __future__ import GIL File "<stdin>", line 1 SyntaxError: Never going to happen! >>>


No, no lo hace. Es una parte de la implementación de VM, no el lenguaje.

Ver también:

from __future__ import braces


Tanto Jython como IronPython "carecen" de GIL , porque es un detalle de implementación de la VM subyacente. Hace mucho tiempo que encontré mucha información, ahora lo único que se me ocurre es esto .

Recuerde que la GIL solo es un problema en el entorno de multiprocesador, y que es poco probable que desaparezca en el futuro previsible de CPython .