Ist die Python GIL wirklich per Interpreter?

Ich sehe oft Leute reden, dass die GIL per Python-Interpreter ist (auch hier auf Stackoverflow).

Was ich jedoch im Quellcode sehe, scheint zu sein, dass die GIL eine globale Variable ist, und daher gibt es eine GIL für alle Interpreter in jedem Python-Prozess. Ich weiß, dass sie das gemacht haben, weil es kein Interpreter-Objekt gibt, das wie lua oder TCL herumgereicht wird, es wurde einfach am Anfang nicht gut entworfen. Und Thread-lokaler Speicher scheint für die Python-Leute nicht portierbar zu sein.

Ist das richtig? Ich habe mir die 2.4-Version angesehen, die ich hier in einem Projekt verwende.

Hatte sich dies in späteren Versionen geändert, insbesondere in 3.0?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage