Как вводится CompletableFuture
в JDK 8 по сравнению с io.netty.util.concurrent.Future
, предоставленным Netty?Java 8 CompletedFuture vs Netty Future
Нетти документация упоминает, что
JDK 8 добавляет CompletableFuture, несколько перекрывается
io.netty.util.concurrent.Future
http://netty.io/wiki/using-as-a-generic-library.html
Вопросы, которые я пытаюсь получить ответы на следующие:
- Каковы были бы их сходства и различия ces be?
- Каким образом характеристики производительности двух отличаются? Какой из них сможет лучше масштабироваться?
по отношению к схожести/различия, я смог придумать следующее:
Сходства: Принципиальное сходство в том, что оба неблокирующая по сравнению с Java Будущее. Оба класса имеют методы, позволяющие добавить слушателя в будущее, выявить неудачу и успех задачи и получить результаты от задачи.
Отличие: CompletableFuture
, кажется, гораздо богаче интерфейс для таких вещей, как сочинял несколько асинхронной деятельность и т.д. Нетти-х io.netty.util.concurrent.Future
с другой стороны, позволяет несколько слушателей, которые будут добавлены к тому же будущему, и к тому же позволяет слушателям удалить.
Вы можете вызвать 'CompletableFuture.thenDoSomething() 'несколько раз, что аналогично добавлению нескольких слушателей в другие будущие рамки. –
Does CompletableFuture имеет цикл событий, такой как Netty Future? – user1870400
@ user1870400 'CompletableFuture' (и любой другой класс, реализующий' CompletionStage'), имеют методы типа 'thenApply' и' thenApplyAsync', которые работают по-разному. Такие методы, как 'thenApply', будут выполняться немедленно в том же потоке, тогда как' thenApplyAsync' будет выполняться с использованием 'Executor', который может быть реализован с циклом событий (хотя по умолчанию это пул кражи работы). – kag0