同時處理多個 Promise - .when(p1, p2, p3, …).then(…)
Callable 和 Runnable - wrappers.when(new Runnable() {…})
使用執(zhí)行服務(ExecutorService)
Java Generics 支持: Deferred<Integer, Exception, Doubledeferred;, deferred.resolve(10);, deferred.reject(new Exception());,deferred.notify(0.80);,
支持 Android
可以使用 Java 8 Lambda
GitHub,網(wǎng)站

RxJava
RxJava – JVM 的 Reactive Extensions (響應式擴展) – 一個用于 Java VM 的庫,它通過可觀測序列構成異步及基于事件的程序。
它擴展了觀察者模式以支持數(shù)據(jù)/事件流,并添加了操作符,使你能以申明的方式組合處理序列,對一些事情進行抽象,比如低級線程、同步、線程安全和并發(fā)數(shù)據(jù)結構。
RxJava 常見的應用是在后臺線程運行一些計算或網(wǎng)絡請求,并在 UI 線程顯示結果(或錯誤):
Flowable.fromCallable(() -{ Thread.sleep(1000); // imitate expensive computation return "Done";}) .subscribeOn(Schedulers.io()) .observeOn(Schedulers.single()) .subscribe(System.out::println, Throwable::printStackTrace); Thread.sleep(2000); // <--- wait for the flow to finish
GitHub,Wiki

MBassador
MBassador 是一個輕量級、高性能的事件總線,它實現(xiàn)了發(fā)布/訂閱模式。它的設計目的是易用、功能豐富和可擴展,同時保持資源的高效利用和良好性能。
MBassador 高性能的核心在于一個專用的數(shù)據(jù)結構,這個數(shù)據(jù)結構提供了非阻塞讀功能以及在寫時最小化鎖競爭,因此它將并行讀/寫訪問造成的性能損耗降到最低。
注解驅(qū)動
分發(fā)的所有東西都會考慮類型層級
同步和異步的消息分發(fā)
可配置的引用類型
消息過濾
封裝消息
多級優(yōu)先層次處理
自定義錯誤處理
// Define your listenerclass SimpleFileListener{ @Handler public void handle(File msg){ // do something with the file }}// somewhere else in your codeMBassador bus = new MBassador();Object listener = new SimpleFileListener();bus.subscribe (listener);bus.post(new File("/tmp/smallfile.csv")).now();bus.post(new File("/tmp/bigfile.csv")).asynchronously();
GitHub,Javadoc
