code: public Thread start(Runnable target)
          throws NoThreadException, InterruptedException
      {
          try {
              return start0(target, getTimeout(), null);
          }
          catch (NoThreadException e) {
              e.fillInStackTrace();
              throw e;
          }
      }
docs: Waits for a Thread to become available and starts a Runnable in it.
  If there are no available threads and the number of active threads is
  less than the maximum allowed, then a newly created thread is returned.
  
  @param target The Runnable instance that gets started by the returned
  thread.
  @exception NoThreadException If no thread could be obtained.
  @exception InterruptedException If interrupted while waiting for a
  thread to become available.
  @return A Thread that has been started on the given Runnable.