A multi threaded, multi core solution to the sleeping barber problem in Java using Java Threads and Executor Service