簡體   English   中英

從函數返回值而不完成函數

[英]Returning value from function without completing function

我的功能是將HTTP請求發送到服務器並獲得響應。 看起來像 :

public Acknowledgement function() {
     Acknowledgement ack = new Acknowledgement("received");
     //send http request and get response
     return ack;
}

確認的目的是告知調用方function()已成功調用並且處理已開始。

我想在發送HTTP請求之前返回確認。 一種方法是使用單獨的線程(實現Runnable)來發送請求和獲取響應。 但是線程已經很老了。 什么是線程的其他最新替代品以實現此目的。

您可以嘗試使用回調偵聽器,例如:

interface LifecycleListener {
    void onStarting();
}

public Acknowledgement function(LifecycleListener listener) {         
     listener.onStarting();
     ...
     ...
}

Java中存在許多東西將近20年。 並不是說我們應該停止使用String還是Integer?

但是您是正確的,在裸機線程之上(略)有較新的抽象

因此,要研究的概念將是ExecutorServices以及諸如Future之類的東西。

直接使用線程; 特別是結合使用低級原語(例如,wait / notify)可能不是2017年的首選; 您寧願查看前面提到的ExecutorService; 甚至更進一步,了解諸如RXJava之類的框架。

線程不老,如果想做得更好,可以使用線程池進行管理

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM