日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java8 CompletableFuture异步编程

發布時間:2025/7/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java8 CompletableFuture异步编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Future 接口的局限性

Future接口可以構建異步應用,但依然有其局限性。它很難直接表述多個Future 結果之間的依賴性。實際開發中,我們經常需要達成以下目的:

將兩個異步計算合并為一個——這兩個異步計算之間相互獨立,同時第二個又依賴于第一個的結果。
等待 Future 集合中的所有任務都完成。
僅等待 Future集合中最快結束的任務完成(有可能因為它們試圖通過不同的方式計算同一個值),并返回它的結果。
通過編程方式完成一個Future任務的執行(即以手工設定異步操作結果的方式)。
應對 Future 的完成事件(即當 Future 的完成事件發生時會收到通知,并能使用 Future 計算的結果進行下一步的操作,不只是簡單地阻塞等待操作的結果)

新的CompletableFuture類將使得這些成為可能。
CompletableFuture

JDK1.8才新加入的一個實現類CompletableFuture,實現了Future<T>, CompletionStage<T>兩個接口。

當一個Future可能需要顯示地完成時,使用CompletionStage接口去支持完成時觸發的函數和操作。

當兩個及以上線程同時嘗試完成、異常完成、取消一個CompletableFuture時,只有一個能成功。

CompletableFuture實現了CompletionStage接口的如下策略:

1、為了完成當前的CompletableFuture接口或者其他完成方法的回調函數的線程,提供了非異步的完成操作。

2、沒有顯式入參Executor的所有async方法都使用ForkJoinPool.commonPool()為了簡化監視、調試和跟蹤,所有生成的異步任務都是標記接口AsynchronousCompletionTask的實例。

3、所有的CompletionStage方法都是獨立于其他共有方法實現的,因此一個方法的行為不會受到子類中其他方法的覆蓋。

CompletableFuture實現了Futurre接口的如下策略:

1、CompletableFuture無法直接控制完成,所以cancel操作被視為是另一種異常完成形式。方法isCompletedExceptionally可以用來確定一個CompletableFuture是否以任何異常的方式完成。

2、以一個CompletionException為例,方法get()和get(long,TimeUnit)拋出一個ExecutionException,對應CompletionException。為了在大多數上下文中簡化用法,這個類還定義了方法join()和getNow,而不是直接在這些情況中直接拋出CompletionException。

CompletableFuture中4個異步執行任務靜態方法:

public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier) {

  return asyncSupplyStage(asyncPool, supplier);
}

public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier,Executor executor) {

  return asyncSupplyStage(screenExecutor(executor), supplier);
}

public static CompletableFuture<Void> runAsync(Runnable runnable) {

  return asyncRunStage(asyncPool, runnable);
}

public static CompletableFuture<Void> runAsync(Runnable runnable, Executor executor) {

  return asyncRunStage(screenExecutor(executor), runnable);
}

?其中supplyAsync用于有返回值的任務,runAsync則用于沒有返回值的任務。Executor參數可以手動指定線程池,否則默認ForkJoinPool.commonPool()系統級公共線程池,?

轉載于:https://www.cnblogs.com/leizhuang/p/9968370.html

總結

以上是生活随笔為你收集整理的java8 CompletableFuture异步编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品视频免费观看 | 日韩精品视频一区二区三区 | 国内久久 | 欧美精品www | 真实的中国女人做爰 | 99久久久国产精品无码免费 | 亚洲最大成人网色 | 日本高清视频在线 | 国产精品www在线观看 | 国产羞羞 | av中文字幕网站 | 综合xx网 | 久草超碰在线 | 午夜裸体性播放 | 老司机深夜福利网站 | 国产美女操 | 黄色av影院| 男人av在线 | 日日干夜夜艹 | 99精品久久久久久久 | 竹菊影视一区二区三区 | 国产夫妻一区 | av中文在线观看 | av5566| 成人午夜福利视频 | 牛人盗摄一区二区三区视频 | 精品人妻无码一区二区三区蜜桃一 | 亚洲熟女www一区二区三区 | 国产精品ⅴa有声小说 | 欧美14sex性hd摘花 | 女人脱了内裤趴开腿让男躁 | 亚洲第五页 | 99视频免费在线观看 | 黑丝一区| 国产看真人毛片爱做a片 | 日韩精品视频一区二区三区 | 嫩草影院菊竹影院 | 超碰影院在线 | 午夜私人影院 | 日韩中文字幕 | 石原莉奈在线播放 | 国产精品又黄又爽又色无遮挡 | 亚洲www| 色呦呦国产精品 | 久久婷婷精品 | 亚洲五码av | 色在线播放 | 日韩草比 | 男人天堂国产 | 97精品国产97久久久久久免费 | 99久久影院 | 中文字幕免费高清在线观看 | 欧美激情免费在线 | 快色视频| 久久免费av | 山外人精品影院 | 99cao| 在线中文字幕播放 | 欧美大尺度做爰啪啪床戏明星 | 在线色导航 | 最全aⅴ番号库网 | 成人在线免费播放 | 四虎精品一区 | 天堂影院av| 欧美一区二区免费在线观看 | 一级片黄色片 | 免费看操片 | 性久久久久 | 手机免费av | 日本黄色免费在线观看 | 看国产一级片 | 丝瓜色版 | 欧美八区| 久久女同互慰一区二区三区 | www.狠狠插 | 少妇性l交大片 | 国产激情视频在线播放 | 欧洲午夜视频 | 日韩成人在线一区 | 老湿机69福利 | 日韩高清在线播放 | 亚洲高清视频免费观看 | 男人天堂影院 | 丰满人妻一区二区三区在线 | 懂色aⅴ国产一区二区三区 亚洲欧美国产另类 | 4438国产精品一区二区 | 狠狠婷婷| av中文字幕在线看 | 大陆日韩欧美 | 丰满多毛的大隂户视频 | 久久久久久久久久久久久久久久久久 | av亚州 | 亚洲天堂一 | 99热最新在线 | 在线观看成人网 | 成人一级毛片 | 久久久久久伦理 | 国产特黄| 日韩成人免费在线 |