13

PyPy GILはRPythonのPyPyインタープリター実装の一部ですか、それともtranslate.pyが自動的に追加するものですか?つまり、RPythonで独自の新しい言語インタープリターを作成し、それをtranslate.pyで実行した場合、それは事前にGILの対象になるのでしょうか、それとも私のインタープリターコード次第でしょうか?

4

1 に答える 1

10

GIL処理は、module / thread/gil.pyによってPyPyチェックアウトに挿入されます。これはオプションの翻訳機能であり、スレッドモジュールが有効になっている場合にのみ追加されます。とは言うものの、RPython自体はスレッドセーフな言語ではないため(たとえばCのように)、オブジェクトを正しくロックするように注意する必要があります。そうすれば、オブジェクトが矛盾することはありません。現在使用しているガベージコレクターはスレッドセーフではなく、ロックを追加するだけでフリースレッドモデルから多くの利点が失われるため、主な問題はスレッド対応のガベージコレクターを提供することです。

乾杯、フィジャル

于 2012-08-31T07:33:00.210 に答える