https://medium.com/@kamaljp/threading-interview-question-part-4-using-threads-to-coordinate-objects-ce2e0db6f45d