2012-11-13 2 views

답변

2

@Async 메소드 호출은 특정 스레드 풀 내에서 실행된다. 메소드가 정지하면 (자), 풀로부터의 1 개의 thread가 무한하게 보관 유지됩니다. 봄은 그것에 대해 아무 것도 할 수 없습니다.

메서드가 InterruptedException을 허용 할만큼 친절한 경우 비동기 메서드에서 반환 된 값에 Future.cancel()을 호출하여 취소 할 수 있습니다.

+0

좀 더 자세한 정보를 제공해 주시겠습니까? 미래는 반환 가치입니까? 예외가 발생했는지 어떻게 알 수 있습니까? – pethel

+0

['Future'] (http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Future.html)의 JavaDocs를주의 깊게 읽으십시오. 'Future.get()'throws 태스크로부터 throw 된 경우는 예외입니다. –

+0

감사합니다. 너는 그것을 해결했다. get (time, TimeUnit)는 예외를 throw합니다. 잡으려고하거나 마침내 취소 할 수 있습니다. – pethel

관련 문제