Future.get () 및 InterruptedException 비동기 스레딩
-
20-08-2019 - |
문제
httpclient와 함께 내 응용 프로그램에서 비동기 스레딩을 사용하고 있습니다. 미래 API를 사용하여 전화를 걸어
mStrResults = (String) rssFuture.get();
이 호출은 호출 가능한 httpclient call () 메소드에서 반환 된 HTML 문자열을 검색하려고 시도합니다.
그러나 내가하고 싶은 것은 get 메소드가 Call () 메소드를 실행하는 동안 너무 오래 기다리지 않도록하는 것입니다. rssfuture.get ()를 호출 할 때 타임 아웃 매개 변수를 전달해야합니까?
또한 비동기 스레드가 인터럽트 꺼짐을 던지기 전에 대기 할 기본 시간이 있습니까? 그렇다면 사용자 정의 값을 설정할 수 있습니까?
해결책
호출 할 때 타임 아웃 매개 변수를 전달해야합니다 rssFuture.get()
그리고 timeOutException을 잡습니다. InterruptedException은 실행하는 스레드가 귀하의 call
The와 중단됩니다 Thread.interrupt
방법 또는 전화를 한 경우 cancel(true)
미래의 방법 OBJ.
다른 팁
미래를 사용해야합니다.GET (Long Timeout, TimeUnit Unit), 및 FACK TimeOutException. get ()에 대한 기본 시간 초과가 없으면 기다립니다. 영원히.
미래를 호출하는 스레드 ()가 중단되지 않으면 InterruptedException이 발생하지 않습니다.
제휴하지 않습니다 StackOverflow