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

  • modica89

    modica89

    24 HAZİRAN 2007
  • TecnoTutosPC

    TecnoTutosPC

    19 Kasım 2012
  • TitaniumBackup

    TitaniumBack

    10 EYLÜL 2011