Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从函数返回值而不完成函数_Java_Multithreading_Return - Fatal编程技术网

Java 从函数返回值而不完成函数

Java 从函数返回值而不完成函数,java,multithreading,return,Java,Multithreading,Return,我的功能是向服务器发送HTTP请求并获得响应。它看起来像: public Acknowledgement function() { Acknowledgement ack = new Acknowledgement("received"); //send http request and get response return ack; } 确认的目的是通知调用方函数()已成功调用,并且处理已启动 我想在发送HTTP请求之前返回确认。一种方法是使用单独的线程(实现

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

public Acknowledgement function() {
     Acknowledgement ack = new Acknowledgement("received");
     //send http request and get response
     return ack;
}
确认的目的是通知调用方函数()已成功调用,并且处理已启动


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

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

interface LifecycleListener {
    void onStarting();
}

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

许多东西在Java中已经存在了将近20年。这并不意味着我们应该停止使用字符串或整数,是吗

但是你是正确的,在裸机线程之上有(稍微)更新的抽象

所以,要研究的概念应该是


直接使用线程;特别是与低级别原语(如wait/notify)结合使用可能不是2017年的首选;您更愿意研究上述服务;或者更进一步了解框架,比如。

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

线程不老。。。很多日常、现代的应用程序都在使用它们,别无选择。您可能想看看允许您运行
Runnable
s的
ExecutorService
。但是猜猜到底发生了什么:线程。