Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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 @Asynchronous是否有超时_Java_Jakarta Ee_Asynchronous_Timeout_Ejb - Fatal编程技术网

Java @Asynchronous是否有超时

Java @Asynchronous是否有超时,java,jakarta-ee,asynchronous,timeout,ejb,Java,Jakarta Ee,Asynchronous,Timeout,Ejb,当我调用这样的方法时: @Asynchronous public void cantstopme() { for(;;); } 它会永远运行还是应用程序服务器会在一段时间后杀死它?此代码将永远运行。作为一个独立的应用程序,如果运行的代码没有被设计为被中断,Java就没有合法的方法来中断线程。每当任何人调用带注释的@Asynchronous方法时,它都会立即返回,而不管该方法实际需要多长时间 每次调用都应该返回一个Future对象,该对象基本上是空的,稍后当相关方法调用实际完成时,容器将填充

当我调用这样的方法时:

@Asynchronous
public void cantstopme() {
  for(;;);
}

它会永远运行还是应用程序服务器会在一段时间后杀死它?

此代码将永远运行。作为一个独立的应用程序,如果运行的代码没有被设计为被中断,Java就没有合法的方法来中断线程。

每当任何人调用带注释的
@Asynchronous
方法时,它都会立即返回,而不管该方法实际需要多长时间

每次调用都应该返回一个
Future
对象,该对象基本上是空的,稍后当相关方法调用实际完成时,容器将填充其值

例如:

@Asynchronous
public Future<String> cantstopme() {

}

Java可能没有,但EJB容器可能有..?返回未来对象不是必需的。这也可能是一种无效的方法。不同之处在于,返回void的异步方法不能声明应用程序异常。调用
AsyncResult#get(超时,单位)
不会导致
IllegalStateException
?至少这是我在阅读JavaEE7中的实现时得出的结论。你是如何得出这个结论的?
final Future<String> request = cantstopme();
request.get(10, TimeUnit.SECONDS);