亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java中的可調用與供應商接口

java中的可調用與供應商接口

海綿寶寶撒 2021-09-03 16:31:57
和包中的Callable和Supplier功能接口分別具有以下簽名-java.util.concurrentjava.util.functionpublic interface Callable<V> {    V call() throws Exception;}public interface Supplier<T> {    T get();}是否有一些特定的用例,其中每一個都比另一個更適合?
查看完整描述

3 回答

?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

除了明顯的 Callable 拋出異常之外,區別在于語義。它們有不同的名稱,因為它們代表不同的事物。目的是讓代碼更容易理解。當您使用 Callable 時,您的接口選擇意味著該對象將由另一個線程執行。當您使用 Supplier 時,您暗示它只是一個向另一個組件提供數據的對象。


查看完整回答
反對 回復 2021-09-03
?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

來龍去脈

對于Runnableand Callable,它們從 Java 6 開始就成為Executor并發包的一部分。這意味著它們都準備好提交給 an并異步運行。這里Callable有一個具體的用法。

而對于Runnable(0 in 0 out)、Supplier(0 in 1 out)、Consumer(1 in 0 out) 和Function(1 in 1 out),它們自 Java 8 以來一直是功能特性的一部分。所有這些都準備好了由 lambda 友好的東西處理,比如CompletableFuture. 這里Supplier只是指一個沒有任何輸入參數但有返回值的函數,這是高度抽象的。


0 in(參數)1 英寸(參數)
0 出(返回)RunnableConsumer
1 出(退回)SupplierFunction


查看完整回答
反對 回復 2021-09-03
  • 3 回答
  • 0 關注
  • 268 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號