2013-07-01 31 views

回答

5

每當任何人調用註釋爲@Asynchronous的方法時,它將立即返回,無論該方法實際需要多長時間。

每次調用都應返回一個Future對象,該對象基本上是空的,並且稍後會在相關方法調用實際完成時由容器填充其值。

例如:

@Asynchronous 
public Future<String> cantstopme() { 

} 

,然後調用這樣說:

final Future<String> request = cantstopme(); 

,以後你可以使用的Future.get()方法與特定的超時,即要求結果:

request.get(10, TimeUnit.SECONDS); 
+0

它不是強制返回Future對象。這也可能是一個無效的方法。區別在於,返回void的異步方法不能聲明應用程序異常。 http://docs.oracle.com/javaee/6/tutorial/doc/gkkqg.html – user1807337

2

此代碼將永久運行。 AS或獨立應用程序,如果運行代碼不是被設計爲中斷的,Java沒有合法的方法來中斷一個線程。

+1

Java可能沒有它,但也許EJB容器呢..? –