Является ли PyPy GIL частью реализации интерпретатора PyPy в RPython или это то, что translate.py добавляет автоматически? то есть, если бы я написал свой собственный интерпретатор нового языка в RPython и прогнал его через translate.py, подпадал бы он под действие GIL априори или это зависело бы от моего кода интерпретатора?
Где GIL в PyPy?
Ответы (1)
Обработка GIL вставляется модулем /thread/gil.py в вашу проверку PyPy. Это необязательная функция перевода, и она добавляется только при включенном модуле потока. Тем не менее, RPython сам по себе не является потокобезопасным языком (как, например, C), поэтому вам нужно будет позаботиться о том, чтобы правильно блокировать объекты, чтобы они не оказались несогласованными. Основной проблемой было бы создание сборщика мусора с поддержкой потоков, потому что тот, который мы используем сейчас, не является потокобезопасным, и простое добавление блокировки лишило бы многопотоковую модель многих преимуществ.
Ура, фиджал
person
fijal
schedule
31.08.2012
Просто для протокола: кажется, что clojure-py удалось обойти проблему, создав новые процессы и обмениваясь сообщениями в стиле erlang. clojure-py.blogspot.com/2012/ 04/
- person lobsterism; 05.09.2012