Java 在任务完成前返回

Kev*_* Wu 6 java asynchronous asynchttpclient

我有一个方法,它调用另一个方法,结果并不重要。确切地说,它是对 Web 服务的 POST 请求,结果在该方法中而不是在调用方法中处理。现在我希望 main 方法在该任务完成之前返回。

本质上,我需要某种异步性。我可以在 Java 中使用哪些工具?下面是步骤:

  1. 方法A调用方法B
  2. 方法B开始执行(我们对方法 b 的结果不感兴趣:它调用 Web 服务并自行处理结果)
  3. 方法A在方法B完成之前返回

Jay*_*Jay 1

如果您使用 Spring 那么它非常简单并且没有任何样板代码。查看Spring 中的@Async支持。这是一个非常简单的示例,可帮助您快速入门。

@Service
public class YourClass {
    public void methodA() {
        methodB();
    }

    @Async
    public void methodB() {
        // Your POST logic
    }
}
Run Code Online (Sandbox Code Playgroud)

async在 xml 配置中启用支持,您需要如下所示

<task:annotation-driven />
<task:executor id="defaultAsyncTaskExecutor" pool-size="5-15" queue-capacity="100" />
Run Code Online (Sandbox Code Playgroud)