SORU
7 Ocak 2011, Cuma


Nasıl Clojure vadeli ve sözler çok fark var mı?

Her iki vadeli işlem ve sözlerini kendi değerleri kadar blok, aralarındaki fark nedir?

CEVAP
7 Ocak 2011, Cuma


Clojure açısından cevap, burada Sean Devlin's screencast bazı örnekler:

(def a-promise (promise))
(deliver a-promise :fred)

(def f (future (some-sexp)))
(deref f)

Bu söz açıkça daha sonra bir hesaplama (:fred) seçtiğiniz bir değer sunmak olduğunu unutmayın. Gelecek, diğer taraftan, oluşturulan aynı yerde tüketiliyor. some-expr muhtemelen tandem perde arkasında başlatılan ve hesaplanır (sonunda), ama eğer zaman unevaluated kalırsa mevcut olana kadar iş parçacığı blokları erişilir.


eklemek için düzenlenebilir

Başka bir söz ve bir gelecek arasında ayrım yardımcı olmak için, aşağıdakileri not:

söz

  1. promise oluşturun. Bu sözü şimdi herhangi bir konuya geçebilir nesne.
  2. Hesaplamalar ile devam edin. Bu çok karmaşık hesaplamalar ne gibi yan etkileri, indirme verileri, kullanıcı girişi, veritabanı erişimi, diğer vaatlerine ilgili olabilir. Kod çok programında herhangi bir ana hat kodu gibi görünecektir.
  3. İşiniz bittiğinde, söz sonuçlarını nesne 5**.
  4. deref hesaplama ile bitirmeden sözünü çalışan herhangi bir öğe bitirene kadar engeller. Bitti ve delivered sözü bir kez, söz artık engellemez.

gelecek

  1. Eğer bir gelecek yaratmak. Geleceğinin bir parçası hesaplama için bir ifadesidir.
  2. Geleceği olabilir ya da aynı anda yürütmek olmayabilir. Bir iş parçacığı, bir havuzdan muhtemelen atanmış olabilir. Sadece bekle ve hiçbir şey olabilir. Sizin bakış açınızdansöyleyemezsin.
  3. Bir noktada (veya başka bir iş parçacığı) derefs gelecek. Eğer hesaplama çoktan tamamlandı, sonuçlar alırsın. Eğer zaten tamamlanmış varsa, o kadar engellersiniz. Eğer daha başlamadı bile muhtemelen (, derefing yürütmek için başlar anlamına gelir, ama bu da garanti değildir.)

Siz olsaolabilirbir söz oluşturma aşağıdaki kodu gibi karmaşık gelecek şekilde ifade edin, arzu edilen bir şey olası değil. Bu vadeli sözler gerçekten büyük, karmaşık yürütme yollar için daha uygun olsa da gerçekten hızlı, arka plan-mümkün hesaplamalar için daha uygun olduğu anlamına gelir. Çok, sözler, söz, iş ve başka bir iş parçacığı hasat hasat yapıyor sanatçısına hesaplamaları açısından, biraz daha esnek ve odaklı gibi görünüyor. Vadeli kaynak iplik -- sonuçlarını gerek. ta ki otomatik olarak bir iş parçacığı (çirkin ve hata eğilimli yükü olmadan) başlayan ve diğer şeyle karşı daha odaklı.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Angry Paintballer

    Angry Paintb

    8 Ocak 2012
  • Smith Micro Graphics

    Smith Micro

    15 Mayıs 2008
  • The Brister

    The Brister

    10 ŞUBAT 2008