Здравствуйте! По примеру из здешнего урока я сделал примерчик себе, когда использую из лекции ручной булевый переключатель, выводятся все 10 раз и без исключения. Если же использую thread.interrupt(), то лишь 9 раз и выкидывает исключение. Почему так? Разве принцип там не один и тот же?
import java.util.Date;
public class Example{
public static void main(String[] args) throws InterruptedException{
Thread thread = new Thread(new exampleThread(),"huh");
thread.start();
Thread.sleep(10000);
//thread.interrupt(); этот вариант неверно работает
exampleThread.go = false;
}
}
class exampleThread implements Runnable{
private static int tik;
public static boolean go = true;
public void run(){
//while(!Thread.currentThread().isInterrupted()){
while(true){
try{
Thread.sleep(1000);
System.out.println(++tik);
if(!go)
return;
}
catch(InterruptedException e){
System.out.println(e.getMessage());
return;
}
}
}
}
две капли капсаицинався соль. 👍