2015-12-07 41 views
8

JDK 8'de tanıtılan CompletableFuture Netty tarafından sağlanan io.netty.util.concurrent.Future ile nasıl karşılaştırılır?Java 8 CompletableFuture vs Netty Future

  1. :

    Netty belgelerdir

    JDK 8 biraz io.netty.util.concurrent.Future http://netty.io/wiki/using-as-a-generic-library.html

    Cevapları almaya çalışıyorum soruları örtüşür CompletableFuture ekler bahseder Benzerlikleri ve farklılıkları neler olurdu? ces?

  2. Her ikisinin performans özellikleri nasıl değişir? Hangisi daha iyi ölçeklenebilir? benzerlikler/farklılıklar açısından

, aşağıdaki ile gelip mümkün olmuştur:

benzerlikler: temel benzerlik olmanın hem Java ile karşılaştırıldığında engellenmeyen olduklarını Gelecek. Her iki sınıf da geleceğe bir dinleyici eklemek, görevdeki başarısızlığı ve başarıyı anlamak ve görevden sonuç almak için mevcut yöntemlere sahiptir.

Farklılıklar: CompletableFuture birden dinleyici aynı Geleceğe eklenecek sağlayan diğer taraftan vb Netty en io.netty.util.concurrent.Future birden zaman uyumsuz faaliyetler beste gibi şeyler için çok daha zengin bir arayüze sahip gibi görünüyor, ve dahası dinleyiciye sağlar kaldırılmalıdır.

+0

"CompletableFuture" öğesini çağırabilirsiniz.SonraDoSomething() 'yöntemleri, diğer gelecekteki çerçevelerde birden fazla dinleyici eklemeye benzer, birden çok kez. –

+0

CompletableFuture'ın Netty Future gibi bir olay döngüsü var mı? – user1870400

+0

@ user1870400 "CompletableFuture" (ve CompletionStage özelliğini uygulayan başka bir sınıf), farklı yollarla çalışan "thenApply" ve "thenApplyAsync" gibi yöntemlere sahiptir. 'ThenApply' gibi yöntemler hemen aynı iş parçacığı üzerinde yürütülürken,' thenApplyAsync 'bir olay döngüsü ile uygulanabilen bir' Yürütücü 'kullanılarak yürütülür (varsayılan bir çalışma çalma havuzu olmasına rağmen). – kag0

cevap

1

biz

Java bazen Netty tarafından sağlanan yapıları subsume fikirleri benimseyerek ilerler bu bütün paragrafın (özellikle ilk cümle) bakarsak. Örneğin, JDK 8, 'un bir kısmını io.netty.util.concurrent.Future ile çakışan CompletableFuture ekler. Böyle bir durumda, Netty'nin yapıları size iyi bir göç yolu sağlar; , API'yi gelecekteki geçişi göz önünde bulundurarak özenle güncelleyeceğiz.

Ne temelde söylüyor netty Future ve CompletableFuture aynı konsept, ancak farklı kişiler tarafından farklı zamanlarda uygulanan olmasıdır.
Netty geleceği yaptı, çünkü java'da bir tane yoktu ve Guice gibi bir şeyden bir bağımlılık yapmak istemiyorlardı. Ama şimdi, java bir tane oluşturdu ve kullanıma hazır.
Paragrafın sonunda, temel olarak, netty API'sinin Future'u CompletableFuture ile değiştirebileceğini söylüyorlar.
Benzerlikler/farklılıklar açısından, ikisi de future/promise modelinin birçok uygulamasından sadece bir tanesidir. Netty api ve netty spesifik şeyleri kullanırken netty'yi kullanın, aksi halde CompletableFuture kullanın.