interface ICollab extends Runnable { static final Runnable DONE = r { fail("Collab done") }; // returns null => sleep // returns done => all work done //Runnable grabWork(); void addWork(Runnable work); void done(); int numberOfCores(); }