https://towardsdev.com/mastering-java-multithreading-8-comprehensive-understanding-of-shutdown-hook-41ae856667b6