public class Threading extends Thread {
@Override
public void run(){
for (int i=0;i<=5;i++){
System.out.println(Thread.currentThread().getName()+" reached "+i+" metres");
if(i==5){
System.out.println("WINNER IS "+Thread.currentThread().getName().toUpperCase(Locale.ENGLISH));
break;
}
}
}
public static void main(String[] args) {
Threading t1=new Threading();
Threading t2=new Threading();
Threading t3=new Threading();
t1.setName("Mohit");
t2.setName("Hary");
t3.setName("Himanshu");
t1.start();
t2.start();
t3.start();
}
}
Ich möchte den Namen des Threads, der zuerst die 5 Meter erreicht und dann aus der Schleife gehen. Aber was passiert mit diesem Code ist, dass die For-Schleife läuft, bis jeder Thread 5 Meter erreicht und den Namen aller Threads druckt, wenn sie die 5 Meter erreichen. Bitte sag mir, warum passiert das und wie kann ich das korrigieren?Kann nicht für Schleife mit break-Anweisung
Jeder Thread führt die Schleife * unabhängig * von den anderen. Wenn man davon bricht, sind die anderen unberührt. –
Danke für die Antwort. Kannst du mir zeigen, wie ich die Threads in meinem aktuellen Code stoppen kann? @ JohnBollinger –
vielleicht ein 'AtomicBoolean' verwenden – luk2302