code: private boolean createWorker(boolean isSpare) {
          ForkJoinWorkerThreadFactory fac = factory;
          Throwable ex = null;
          ForkJoinWorkerThread wt = null;
          WorkQueue q;
          try {
              if (fac != null && (wt = fac.newThread(this)) != null) {
                  if (isSpare && (q = wt.workQueue) != null)
                      q.config |= SPARE_WORKER;
                  wt.start();
                  return true;
              }
          } catch (Throwable rex) {
              ex = rex;
          }
          deregisterWorker(wt, ex);
          return false;
      }
docs: Tries to construct and start one worker. Assumes that total
  count has already been incremented as a reservation.  Invokes
  deregisterWorker on any failure.
  
  @param isSpare true if this is a spare thread
  @return true if successful