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

  • hytchme

    hytchme

    9 Mart 2014
  • superflyy88

    superflyy88

    8 ŞUBAT 2009
  • WHZGUD2

    WHZGUD2

    21 EYLÜL 2011