Still trying to get this to work, but still not working like what I want....I think I need to change this dramatically
This implementation seems to work, but is very slow
The previous version was only working due to the Thread.sleep that was slowing down execution.  The main thread was able to wake up before other threads that just started....this change forces the main thread to only start once other threads have been given a chance
Still have the issue that if we do a .notify() to wake up the sleeping thread, the main thread gets the runnable lock before the notified thread does
Trying to make changes so that we can make sure that the other thread gets control when we notify
More implementation
Little easier to understand the code this way