SORU
23 Ocak 2009, Cuma


Nasıl/neden fonksiyonel dillerde (özellikle) eğer x ölçek?

Bir süre fonksiyonel programlama artan görünürlük diller ve özellikleri izliyorum. Araştırdım ve itiraz için sebep göremedim.

Sonra, son dönemde Kevin Smith'in "" Codemash. sunum Ayrık Temelleri katıldım

Sunumu hoşuma gitti ve fonksiyonel programlama özellikleri çok çok daha kolay/iş parçacığı eşzamanlılık sorunları önlemek için öğrendim. Anlıyorum olmaması, devlet ve mutability olanaksız kılıyor için birden çok iş parçacığı değiştirmek için aynı veri, ama Kevin dedi (anladım doğru) tüm iletişim gerçekleşir üzerinden ileti ve mesages işlenmiş eşzamanlı olarak (tekrar kaçınarak eşzamanlılık sorunları).

Ama eğer x yüksek ölçekli uygulamalar (tek sebebi Ericsson ilk etapta oluşturulan) kullanılır okudum. Ne kadar etkili olursa her şey eşzamanlı olarak işlenmiş bir mesaj olarak ele alındığında, saniyede istekleri binlerce kullanım olabilir mi? Aynı zamanda işlemin birden çok iş parçacığı çalışan ve ölçülebilirlik elde yararlanabiliriz çok uyumsuz işlem doğru yürümeye başladığımız bu değil mi? Daha güvenli iken bu mimari, geriye doğru bir adım ölçülebilirlik açısından gibi görünüyor. Neyi kaçırıyorum?

Eğer x yaratıcıları bilerek iş parçacığı destekleyen eşzamanlılık sorunları önlemek için Kaçınılması anlıyorum ama Çoklu-işlem gerekli ölçülebilirlik elde etmek için olduğunu sanıyordum.

Nasıl işlevsel programlama dilleri doğal olarak, iş parçacığı için güvenli olabilir, ama yine de ölçek?

CEVAP
23 Ocak 2009, Cuma


Fonksiyonel bir dil (genel olarak) bir değişken mutasyona dayanmaz. Bu nedenle, "değeri sabittir." çünkü bir değişken, Eyalet paylaşılan korumak zorunda değiliz Bu da hoop çoğunluğu geleneksel dil ile işlemci veya makine arasında bir algoritma uygulamak için gitmek zorunda olan atlama önler.

Eğer x alır, uzağa daha geleneksel işlevsel dil sıcak bir mesaj iletirken sistemi sağlar her ameliyat bir olay tabanlı sistem bir parça kod sadece endişeler hakkında mesaj alma ve gönderme, endişesi daha büyük bir resim.

Mesajı başka bir işlemci veya makinede işlenecek anlamına gelir programcı (sözde) ilgisiz olan ne: sadece mesaj gönderme devam etmek için yeterince iyi. Eğer bir yanıt umursadığını, olarak bekleyecekbir mesaj daha.

Bu sonuç, Her bir parçacık diğer her parçacık bağımsız olmasıdır. Hayır paylaşılan kod, paylaşılan durum ve tüm etkileşimleri donanım birçok parça (veya değil) arasında dağıtılan bir Mesaj Sistemi geliyor.

Geleneksel bir sistem ile kontrast bu: birbirini kapsamayan nesneler yer var ve semphamores etrafında "" değişken ve kod yürütülmesine korunmaktadır. Sıkı ile bir işlev çağrı yığını (dönüş için bekliyor) bağlama var. Tüm bu Ayrık gibi paylaşılan bir şey bir sistem içinde daha az soruna neden olan darboğazları oluşturur.

EDİT: Ayrık zaman uyumsuz olduğunu belirtmem gerek. Bir mesaj geri geldi mesaj ve/belki bir gün gönderin. Ya da değil.

Sipariş infazı hakkında spencer'ın nokta da önemli ve iyi bir cevap verdi.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Darren Kitchen

    Darren Kitch

    3 EKİM 2011
  • FD2097

    FD2097

    21 HAZİRAN 2009
  • guau . .

    guau . .

    25 Ocak 2008