SORU
5 Kasım 2008, ÇARŞAMBA


Global Yorumlayıcı neden Kilit?

Tam olarak Python Global Interpreter Lock işlevi nedir? Java için derlenmiş başka dillerde benzer bir mekanizma kullanır?

CEVAP
5 Kasım 2008, ÇARŞAMBA


Herhangi bir iş parçacığı güvenliği sorunu için genel olarak, kilit iç veri yapıları korumak gerekir. Bu parçalı yapı çeşitli düzeylerde yapılabilir.

  • İnce taneli her ayrı yapı kendi kilit nerede kilitleme, kullanabilirsiniz.

  • İri taneli bir kilit her şeyi korur ve kilitleme (GİL yaklaşım) kullanabilirsiniz.

Çeşitli artılarını ve eksilerini her yöntemin var. İnce taneli büyük paralellik sağlar kilitleme - iki iş parçacığı olabilir herhangi bir kaynak paylaşımı olmadığında paralel olarak yürütmek. Ancak çok daha büyük bir idari yük vardır. İçin her satır kod, ve çeşitli kilitleri serbest bırakmak gerekebilir.

İri taneli yaklaşımının tersidir. İki iş parçacığı aynı anda çalışabilir mi, ama tek bir iş parçacığı daha hızlı çok muhasebe yapıyor değil, çünkü çalışır. Sonuçta aşağı tek dişli hızı ve paralellik arasında bir tercih geliyor.

Python GİL kaldırmak için birkaç deneme olmuştur, ama tek dişli makineler için ek yükü genellikle çok büyük oldu. Bazı durumlarda aslında işlemci çok yavaş makinelerde bile olabilir kilit çakışması nedeniyle.

Java için derlenmiş başka dillerde benzer bir mekanizma kullanır?

Değişir, ve muhtemelen bir dil özelliği uygulama özelliği olarak çok olarak kabul edilmemelidir. Örneğin, Jython gibi Python uygulamaları ve temel VM, GİL bir yaklaşım yerine,iş parçacığı yaklaşım kullanan IronPython var Ruby ve bir sonraki sürümü towards bir GİL tanıtan ilerliyor gibi görünüyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DroidModderX ROOT Master

    DroidModderX

    14 ŞUBAT 2011
  • OnlyFunClips

    OnlyFunClips

    16 ŞUBAT 2012
  • Virtual Riot

    Virtual Riot

    19 Mayıs 2011