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();
}
}
我想要打印首先達到5米的線程的名稱,然後退出循環。但是這段代碼發生的事情是,for循環一直運行到每個線程達到5米並在所有線程達到5米時打印所有線程的名稱。請告訴我爲什麼會發生這種情況,我該如何糾正它?無法使用break語句退出for循環
每個線程都會獨立運行*其他線程。當一個人從中斷時,其他人不受影響。 –
感謝您的回答。你能告訴我如何停止當前代碼中的線程? @JohnBollinger –
也許使用'AtomicBoolean' – luk2302