public static void main(String[] args) {
Thread thread = new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(99999);
}
catch(InterruptedException e) {
System.out.println("I'm interrupted!!");
}
}
});
thread.start();
out.print(thread.isAlive()+" ");
thread.interrupt();
out.print(thread.isAlive()+" ");
}
Ich verstehe nicht, warum die KonsoleSchwierigkeiten zu verstehen, das Verhalten des thread.interrupt() -Methode
true true ist, ich bin unterbrochen !!
, aber ich denke, das Ergebnis
wahr unterbrochen ich bin !! true
Warum ist nicht das Ergebnis, was ich denke? Vielen Dank!
Threads laufen "parallel", wenn sie nicht synchronisiert sind. "Parallel" bedeutet, dass es keine Garantie für die Reihenfolge gibt, in der Dinge in verschiedenen Threads passieren werden. Ihr zweiter Thread kann unmöglich "Ich bin unterbrochen" drucken, bevor der erste Thread ihn unterbricht - das ist ein Beispiel für die Synchronisation - aber dann erlaubt Ihr Programm, dass der Aufruf println() und der zweite Ausdruck 'thread.isAlive' in _in erfolgt parallel_. Das heißt, es gibt keine Garantie, welche dieser Dinge zuerst eintreten werden. –