在没有完成功能的情况下从函数返回值

时间:2017-03-27 07:46:12

标签: java multithreading return

我的功能是向服务器发送HTTP请求并获得响应。它看起来像:

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

确认的目的是通知调用者已成功调用function()并已开始处理。

我想在发送HTTP请求之前返回确认。一种方法是使用单独的线程(实现Runnable)来发送请求和获取响应。但线程已经很老了。什么是线程的其他最新替代方案来实现这一目标。

3 个答案:

答案 0 :(得分:0)

您可以尝试使用回调侦听器,例如:

interface LifecycleListener {
    void onStarting();
}

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

答案 1 :(得分:0)

近20年来,Java中存在很多东西。并不意味着我们应该停止使用String,或者我们应该使用Integer吗?

但是,如果在裸机线程之上有(稍微)较新的抽象,那么你是正确的。

因此,要研究的概念是ExecutorServices和类似Future的内容。

直接使用线程;特别是与低级原语相结合,如wait / notify可能不是2017年的首选;你宁愿调查前面提到的ExecutorService;甚至更进一步,了解RXJava等框架。

答案 2 :(得分:-1)

线程不老,如果你想做得更好,你可以使用线程池来管理它们