https://sir-rasel.github.io/blogs/34-java-part-5-thread-programming/
Java Crash Course - Part 5 (Thread Programming)