public void execute(Runnable runnable) throws IllegalStateException {
  if (runObj != null)   throw new IllegalStateException("Cannot execute PoolableThread that " + "is busy");
synchronized (working) {
    if (runObj != null)     throw new IllegalStateException("Cannot execute PoolableThread " + "that is busy");
    runObj=runnable;
    working.notifyAll();
  }
}

public void execute ( Runnable runnable ) throws IllegalStateException { if ( runObj != null ) throw new IllegalStateException ( "Cannot execute PoolableThread that " + "is busy" ) ; synchronized ( working ) { if ( runObj != null ) throw new IllegalStateException ( "Cannot execute PoolableThread " + "that is busy" ) ; runObj = runnable ; working . notifyAll ( ) ; } }
define what to run , and wake up this dozing thread
