当我这样调用方法时:
@Asynchronous
public void cantstopme() {
for(;;);
}
它会永远运行还是应用服务器会在特定时间后终止它?
最佳答案
每次任何人调用注解为@Asynchronous
的方法时,无论该方法实际花费多长时间,它都会立即返回。
每次调用都应该返回一个 Future
对象,该对象最初是空的,稍后当相关方法调用实际完成时,容器将填充它的值。
例如:
@Asynchronous
public Future<String> cantstopme() {
}
然后这样调用:
final Future<String> request = cantstopme();
稍后您可以使用具有特定超时的 Future.get() 方法来请求结果,即:
request.get(10, TimeUnit.SECONDS);
关于java - @Asynchronous 是否有超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17404838/