2013-01-19 18 views
8

V8 Javascript motorunun tam zamanında derleyici olduğunu okudum. Ve bu PyPy, aynı zamanda tam bir zaman derleyicisi olan bir Python yorumlayıcısıdır. PyPy'nin çoklu iplik varlığında bir GIL'a sahip olduğu bilinmektedir.V8 javascript altyapısında GIL var mı?

V8 Javascript altyapısı, web çalışanı iş parçacıklarıyla ilgilenmek için genel bir tercüman kilidine (GIL) eşdeğer bir şey var mı?

Ve tüm dinamik dillerin çok çekirdekli işlemlerle ilgili sorunları var ve eğer öyleyse JIT derleyicileri neden GIL ile sorun yaşıyor?

+0

[HotSpot bir JIT derleyicisine sahiptir, ancak tek bir GIL'si yoktur, bunun yerine bir dizi daha ince kilitleri vardır] (http://stackoverflow.com/q/991904/309483). –

+0

WebÇalışanlar pek fazla G/Ç yapamazlar, bu yüzden bir GIL'in onlar için bir problem olmayacağını düşünürdüm ... –

cevap

12

Chromium Web Workers, V8 İzolatlarının üzerine uygulanır. Her İzolat aslında tamamen bağımsız bir V8 VM örneğidir. Birçok İzolat aynı işlemde bir arada var olabilir ve aynı anda JavaScript kodunu çalıştırabilir. Bununla birlikte, her İzolat sadece belirli bir zamanda sadece tek bir dişe sahip olabilir. Bir İzolat'a özel erişim sağlamak için 'un gömülü olması gereken bir İzolasyon seviyesi kilitleme mekanizması vardır.

+4

İngilizce'yi çevirebilir misiniz lütfen? –

+0

@AlexMills cevabın hangi kısmının açık olmadığını? –

+0

umm, bunun neden V8'in bir GIL'si olduğunu ya da içermediğini açıklayabilir misiniz? Oldukça emin değilim ama bunu okuyuculara daha açık hale getirmelisiniz. Tek bir iş parçacığı olması, anladığım kadarıyla bir GIL'e gereksinim duymadığı anlamına gelir. –

3

Son sorunuzu yanıtlamak için, GIL'lerin dinamik olarak yorumlanmış veya JIT derlenmiş dillerinde bulunması gereken bir şey olduğunu düşünmüyorum. Örneğin, PyPy, GIL'i yazılım işlem belleğini kullanarak ortadan kaldırmak için bazı ön çalışmalar yaptı. PyPy ve CPython'un GIL'lere sahip olmaları, geçmişlerinde daha önce yapılmış olan tasarım kararları ve iç veri yapılarının iplik güvenli olmadığı gerçeği ile daha fazla ilgilidir.

İlgili konular