https://medium.com/@travelswithkrishna/java-concurrency-utilities-day-25-mastering-concurrency-tools-for-efficient-java-applications-d6a533eb05b6