SORU
15 HAZİRAN 2010, Salı


Çoklu işlem Parçacığı vs Python

threading multiprocessing avantajları anlamaya çalışıyorum. BiliyorumÇoklu işlemetrafında Küresel Tercüman ama başka avantajları da var ne Kilit, alır, veiş parçacığıaynı şey değil mi?

CEVAP
15 HAZİRAN 2010, Salı


Burada aklıma gelen eksileri/artıları.

Çoklu işlem

Artıları

  • Bellek alanı ayrı
  • Kod genellikle basittir
  • Alır birden fazla İşlemci ve çekirdek avantajı
  • Önler cPython için GİL sınırlamalar
  • Paylaşılan bellek kullanıyorsanız sürece, çoğu ortadan kaldırır eşitleme ilkel ihtiyaçlarını (yerine, IPC için iletişim bir model daha var)
  • Alt işlemler ınterruptible/öldürülebiliyor
  • multiprocessing Python modülü threading.Thread gibi bir arayüz ile yararlı soyutlamalar içerir
  • Bir CPU-bound cPython ile işlenmesi gerekir

İnş

  • Daha fazla yük ile biraz daha karmaşık (vs paylaşılan bellek/nesneleri iletişim modeli) IPC
  • Büyük bellek ayak izi

İş parçacığı

Artıları

  • Hafif - düşük bellek ayak izi
  • Paylaşılan bellek - başka bir bağlamda daha kolay devlet için erişim sağlar
  • Kolayca duyarlı kullanıcı Arayüzü yapmanıza olanak verir
  • düzgün GİL serbest cPython C uzantısı modülleri paralel olarak çalışır
  • Benim için harika bir seçenek O-ilişkili uygulamalar/

İnş

  • cPython - GİL tabi
  • Interruptible/öldürülebiliyor
  • Eğer komut sırası/mesaj pompa modeli (Queue modülü kullanarak) takip etmiyor, sonra eşitleme ilkel manuel kullanmak bir zorunluluk (kararlar kilitleme parçalı yapı için gerekli)
  • Kod genellikle daha zor anlamak ve selam olsun - yarış koşulları için potansiyel önemli ölçüde artar

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ChasesAndCrashes

    ChasesAndCra

    31 Temmuz 2009
  • NLthomas21

    NLthomas21

    20 Mayıs 2008
  • William Hyde

    William Hyde

    23 HAZİRAN 2008