Здравствуйте! По примеру из здешнего урока я сделал примерчик себе, когда использую из лекции ручной булевый переключатель, выводятся все 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;
            }
        }
    }
}