4

このようなメソッドを呼び出すと:

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

それは永久に実行されますか、それとも Application Server は特定の時間後にそれを強制終了しますか?

4

2 に答える 2

5

アノテーションが付けられたメソッドが誰かによって呼び出されるたびに@Asynchronous、メソッドが実際にかかる時間に関係なく、すぐに戻ります。

Future各呼び出しは、基本的に空で始まり、関連するメソッド呼び出しが実際に完了したときにコンテナーによって値が埋められるオブジェクトを返す必要があります。

例えば:

@Asynchronous
public Future<String> cantstopme() {

}

そして、次のように呼び出します。

final Future<String> request = cantstopme();

そして後で、特定のタイムアウトで Future.get() メソッドを使用して結果を求めることができます。

request.get(10, TimeUnit.SECONDS);
于 2013-07-01T12:57:19.747 に答える