Future.get () i InterruptedException asynchroniczny gwintowania

głosy
1

Im przy użyciu asynchronicznej wątków w mojej aplikacji z httpclient. Nawiązywać połączenia za pomocą Future Api jak tak

mStrResults = (String) rssFuture.get();

To wezwanie próbuje odzyskać ciąg html zwrócony z mojego zaproszenia wywoływalnym httpclient metoda ().

Co chcę zrobić jest jednak zapewnienie, że metoda get nie czekać zbyt długo podczas wykonywania metody call (). Mam przekazać parametr timeout Dzwoniąc rssFuture.get () lub jest ok tylko otaczają z bloku InterruptedException haczyk?

Również istnieje domyślny czas której asynchroniczny wątek będzie czekać zanim rzuca InterruptedException a jeśli tak mogę ustawić wartość niestandardową?

Utwórz 09/12/2008 o 15:44
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
3

Należy przekazać parametr timeout podczas wywoływania rssFuture.get()i złapać TimeoutException. InterruptedException nastąpi tylko wtedy, gdy uruchomiony wątek Your callzostanie przerwany z Thread.interruptmetodą lub, jeśli wywołać cancel(true)metodę w obj przyszłości.

Odpowiedział 09/12/2008 o 16:12
źródło użytkownik

głosy
2

Należy użyć przyszłości. dostać (długi czas oczekiwania, jednostka TIMEUNIT) i złapać TimeoutException. Nie ma domyślnego limitu czasu dla get (), to będzie czekać wiecznie .

InterruptedException nie zostanie wyrzucony, chyba że gwint nazywając Future.get () została przerwana.

Odpowiedział 09/12/2008 o 16:07
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more