https://medium.com/javarevisited/thread-life-cycle-with-example-java-multithreading-interview-preparation-a2014213e65e