我想用vertx開發我的應用程序承諾風格,CompletableFuture完全適合這個目的,但JVM在CompletableFuture的背景上使用fork/join,這可能會破壞Vertx線程安全。Vertx 3是否支持CompletableFuture?
你有什麼想法或在你的項目中使用過這個功能嗎?
我想用vertx開發我的應用程序承諾風格,CompletableFuture完全適合這個目的,但JVM在CompletableFuture的背景上使用fork/join,這可能會破壞Vertx線程安全。Vertx 3是否支持CompletableFuture?
你有什麼想法或在你的項目中使用過這個功能嗎?
是的是的話,這裏有一個例子http://qrman.github.io/posts/2015/08/28/callback_hell_completablefuture_ftw/
但我認爲JavaRx是更好的解決方案,因爲它支持作爲頭等公民通過vert.x http://vertx.io/docs/vertx-rx/java/
還有https://github.com/cescoffier/vertx-completable-future。自述:
這個項目提供了Completable未來的API,但強制執行Vert.x線程模型:
- 當使用xAsync方法(不執行),則回調呼籲Vert.x上下文
- 使用非異步時,它使用調用者線程。如果它是Vert.x線程,則使用相同的線程。如果未從Vert.x線程調用,它仍然使用調用者線程
- 將xAsync方法與Executor參數一起使用時,此執行程序用於執行回調(不強制執行Vert.x線程系統)
雖然尚未使用。
你有沒有試過(或看過)[JavaRx](https://github.com/ReactiveX/RxJava)? –