Concurrency & Multithreading Assignment 2