Ich habe den Hauptthread der Ausführung, der neue Threads hervorbringt. Im Hauptthread der Ausführung in main () rufe ich Thread.sleep()
auf. Wann bekomme ich eine Unbehandelte Ausnahme InterruptedException
?.
Ich bin mir nicht sicher, warum ich das verstehe. Ich dachte, dies war, weil ich einen Verweis auf den Haupt-Thread brauchte, also ging ich weiter und machte einen Verweis auf es über Thread.currentThread()
.
Ist das nicht der Weg, den Faden schlafen zu lassen? Was ich tun muss, ist das Warten auf den Hauptthread / sleep / delay, bis es wieder funktioniert.
Was Sie sehen, ist ein Kompilierungsfehler, da Sie die geprüfte Ausnahme ( InterruptedException
in diesem Fall) nicht korrekt behandelt haben. Handhabung bedeutet einen der folgenden Schritte auszuführen:
1) Deklaration der Methode als throws InterruptedException
, so dass der Aufrufer die Ausnahme behandeln muss
2) Abfangen mit einem try{..}catch(..){..}
-Block. Zum Beispiel:
InterruptedException
wird verwendet, um anzuzeigen, dass der aktuelle Thread durch einen externen Thread unterbrochen wurde, während er eine blockierende Operation ausführt (z. B. unterbrechbare E / A, Warten, Ruhezustand)
Tags und Links java multithreading