2012-08-28 28 views
11

PyPy GIL, RPython'daki PyPy yorumlayıcı uygulamasının bir parçası mı, yoksa translate.py'nin otomatik olarak eklediği bir şey mi? yani RPython'da kendi yeni dil yorumlayıcımı yazıp translate.py aracılığıyla çalıştırsaydım, GIL'ye bir önceliğe mi maruz kalırdı, yoksa bu benim tercüman koduma mı ait olurdu?PyPy'deki GIL nerede?

cevap

10

GIL kullanımı PyPy çıkışınızda modül/thread/gil.py ile eklenir. İsteğe bağlı bir çeviri özelliğidir ve yalnızca iş parçacığı modülü etkinleştirildiğinde eklenir. Bu, RPython'un kendisinin (örneğin C gibi) iş parçacığı için güvenli bir dil olmadığını, böylece nesneleri doğru bir şekilde kilitlemek için kendinize dikkat etmelisiniz, bu yüzden tutarsızlaşmazlar. Ana mesele, iplik farkında bir çöp toplayıcı sağlamaktı, çünkü şu anda kullandığımız, iplik güvenli değil ve sadece bir kilit eklemek, bir serbest iplikçik modelinden çok fazla faydayı kaldıracaktır.

Şerefe Sadece kayıt için fijal

+0

, Clojure-py yeni süreçler yumurtlama ve erlang tarzı mesajlar aracılığıyla iletişim kurarak soruna kazanılmış gibi görünüyor. http://clojure-py.blogspot.com/2012/04/clojure-py-and-distributed-concurrency.html – lobsterism