Future.get () και InterruptedException Ασύγχρονη σπείρωμα

ψήφοι
1

Im χρησιμοποιώντας ασύγχρονη σπείρωμα στην αίτησή μου με httpclient. Κάνω μια κλήση χρησιμοποιώντας το Μέλλον Api όπως τόσοι

mStrResults = (String) rssFuture.get();

Η παρούσα πρόσκληση προσπαθεί να ανακτήσει ένα κορδόνι html επέστρεψε από Προς καταβολή httpclient κλήση μου () μέθοδο.

Αυτό που θέλω να κάνω όμως είναι να διασφαλίσουμε ότι η μέθοδος get δεν περιμένετε πάρα πολύ καιρό κατά την εκτέλεση της μεθόδου κλήσης (). Σε περίπτωση i περάσει μια παράμετρος χρονικού ορίου κατά την κλήση rssFuture.get () ή είναι εντάξει απλά να περιβάλλουν με ένα μπλοκ των αλιευμάτων InterruptedException;

Επίσης, είναι ένα προεπιλεγμένο χρονικό διάστημα το οποίο η ασύγχρονη νήμα θα περιμένει πριν από τη ρίψη ενός InterruptedException και αν ναι, μπορώ να ορίσετε μια προσαρμοσμένη τιμή εκεί;

Δημοσιεύθηκε 09/12/2008 στις 15:44
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
3

Θα πρέπει να περάσει μια παράμετρος χρονικού ορίου κατά την κλήση rssFuture.get()και να πιάσει το TimeoutException. Μια InterruptedException θα συμβεί μόνο αν το νήμα τρέχει το σας callπαίρνει διακοπεί με τη Thread.interruptμέθοδο ή εάν καλέσετε τη cancel(true)μέθοδο της obj Μέλλον.

Απαντήθηκε 09/12/2008 στις 16:12
πηγή χρήστη

ψήφοι
2

Θα πρέπει να χρησιμοποιείτε Μέλλον. να πάρει (μακρύ χρονικό όριο, μονάδα TIMEUNIT) , και να πιάσει TimeoutException. Δεν υπάρχει προεπιλεγμένο χρονικό όριο για την get (), θα περιμένουμε για πάντα .

InterruptedException δεν θα πρέπει να απορρίπτονται, εκτός εάν διακοπεί το νήμα καλώντας Future.get ().

Απαντήθηκε 09/12/2008 στις 16:07
πηγή χρήστη

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