你需要使用Threads,因为你将程序流分成两部分;返回路径和处理路径分开并彼此并排运行.
如果您需要通过返回方法确认方法开始发送,那么为什么您的服务提供方法看起来不像这样简单?
public Acknowledgement someService() {
new Thread(new SomeServiceRunnable()).start();
return new Acknowledgement();
}
该服务将启动,然后该方法将返回(从而通知该进程已启动),同时处理继续,直到该线程结束…
我在这里错过了一些你需要达到的目标吗?
希望这可以帮助.
编辑:
似乎已经设计了一些答案来解决我没有看到作为问题的一部分呈现的问题.以下是我在做出答案时所做的一些假设,这些假设是为了让读到这个答案的人可能更好地了解它何时可能不适用于他们的特定情况:
这适用于您只想承认服务在概念上已经开始执行的情况.确认不能提供有关此执行的任何部分或其初始化成功的信息,只是它在概念上已经开始,也就是说在某个时刻将调用Associated Runnables run().
当然,如果您希望执行启动并且调用者返回,那么确认的重要性必然会受到在返回之前等待执行的任务的确切数量的限制,此处不会等待并且返回确认立即,所以不能给出额外的信息.