To my understanding the following code should terminate normally as the condition stopRunning = true; is met.
However, when I run this program it is printing only Last line of Main(), Start Method ended is never printed as the while loop is never terminated.
 public class Test {
     private static boolean stopRunning = false;
     public static void main(String[] args) throws Exception {
        new Thread(new Runnable() {
            @Override
            public void run() {
                start();
            }
        }).start();
        Thread.sleep(100);
        stopRunning = true;
        System.out.println("Last line of Main()");
    }
    public static void start() {
        while (!stopRunning) {
        }
        System.out.println("Start Method ended.");
    }
}
Please help me understand this behavior.
 
     
     
     
    