PyPy GILはRPythonのPyPyインタープリター実装の一部ですか、それともtranslate.pyが自動的に追加するものですか?つまり、RPythonで独自の新しい言語インタープリターを作成し、それをtranslate.pyで実行した場合、それは事前にGILの対象になるのでしょうか、それとも私のインタープリターコード次第でしょうか?
質問する
1496 次
1 に答える
10
GIL処理は、module / thread/gil.pyによってPyPyチェックアウトに挿入されます。これはオプションの翻訳機能であり、スレッドモジュールが有効になっている場合にのみ追加されます。とは言うものの、RPython自体はスレッドセーフな言語ではないため(たとえばCのように)、オブジェクトを正しくロックするように注意する必要があります。そうすれば、オブジェクトが矛盾することはありません。現在使用しているガベージコレクターはスレッドセーフではなく、ロックを追加するだけでフリースレッドモデルから多くの利点が失われるため、主な問題はスレッド対応のガベージコレクターを提供することです。
乾杯、フィジャル
于 2012-08-31T07:33:00.210 に答える