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

  • A Alkhaldi

    A Alkhaldi

    12 Mayıs 2007
  • CaptainDisillusion

    CaptainDisil

    18 EYLÜL 2007
  • PhoneArena

    PhoneArena

    7 NİSAN 2006