Суть вопроса. Есть класс потока
class MyThread implements Runnable {

    private boolean isActive;

    void disable(){
        isActive=false;
    }

    MyThread(){
       isActive = true;
    }

    public void run(){

        System.out.printf("%s started... \n", Thread.currentThread().getName());
        int counter=1; // счетчик циклов
        while(isActive){
            System.out.println("Loop " + counter++);
            try{
                Thread.sleep(400);
            }
            catch(InterruptedException e){
                System.out.println("Thread has been interrupted");
            }
        }
        System.out.printf("%s finished... \n", Thread.currentThread().getName());
    }
}
И главный метод
public static void main(String[] args) {

    System.out.println("Main thread started...");
    MyThread myThread = new MyThread();
    new Thread(myThread,"MyThread").start();

    try{
        Thread.sleep(1100);

        myThread.disable();

        Thread.sleep(1000);
    }
    catch(InterruptedException e){
        System.out.println("Thread has been interrupted");
    }
    System.out.println("Main thread finished...");
}
В методе main мы усыпляем главный поток на 1,1 сек. и получается до вызова метода disable у нас отрабатывает метод run, который успевает прокрутить 3 итерации цикла и потом цикл завершается и поток завершается, все верно? Не пойму зачем еще один Thread.sleep(1000) после disable?