Java 8 CompletableFuture 浅入
Java 1.5 有了?Future, 可謂是跨了一大步,繼而 Java 1.8 新加入一個 Future 的實現?CompletableFuture, 從此線程與線程之間可以愉快的對話了。最初兩個線程間的協調我采用過 Object 的 ?wait()?和?notify()?, Thread 的?join()?方法,那可算是很低級的 API 了,是否很多 Java 程序都不知道它們的存在,或根本沒用過它們。
如果是簡單的等待所有線程完成可使用 Java 1.5 的?CountDownLatch, 這里有一篇介紹?CountDownLatch 協調線程, 就是實現的 waitAll(threads) 功能。而 Java 8 的?CompletableFuture?的功能就多去,可簡單使用它實現異步方法。雖說?CompletableFuture?實現了?Future?接口,但它多數方法源自于?CompletionStage, 所以還里氏代換,用?Future?來引用?CompletableFuture?實例就很牽強了; 這也是為什么 PlayFramework 自 2.5 開始直接暴露的類型是?CompletionStage?而非其他兩個。
顧名思義,CompletableFuture 代表著一個 Future 完成后該干點什么,具體大致有:
Future 完成后執行動作,或求取下一個 Future 的值。then...
多個 Future 的協調; 同時完成該怎么,其中一個完成該如何。allOf, anyOf
有時候可以把 Future 想像成與線程是一一對應的。?閱讀全文 >>
轉載于:https://blog.51cto.com/unmi/2124325
總結
以上是生活随笔為你收集整理的Java 8 CompletableFuture 浅入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式C++实现--Interpret
- 下一篇: android手机卫士、3D指南针、动画