J'espère que quelqu'un pourra donner un aperçu de ce qui est fondamentalement différent de la machine virtuelle Java qui lui permet d'implémenter correctement les threads sans avoir besoin d'un Global Interpreter Lock (GIL), alors que Python nécessite un tel mal.
Python (le langage) n'a pas besoin d'un GIL (c'est pourquoi il peut parfaitement être implémenté sur JVM [Jython] et .NET [IronPython], et ces implémentations multithread librement). CPython (l'implémentation populaire) a toujours utilisé un GIL pour faciliter le codage (en particulier le codage des mécanismes de ramasse-miettes) et l'intégration de bibliothèques codées en C non thread-safe (il y en avait une tonne autour; -).
Le projet Unladen Swallow , entre autres objectifs ambitieux, prévoit une machine virtuelle sans GIL pour Python - pour citer ce site, "De plus, nous avons l'intention de supprimer le GIL et de corriger l'état du multithreading en Python. Nous pensons que c'est possible grâce à la mise en œuvre d'un système GC plus sophistiqué, quelque chose comme IBM's Recycler (Bacon et al, 2001). "
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots