code: @Override
    public Thread newThread(final Runnable r) {
  
      final Thread t = new Thread(this.group, r,
          String.format("%s:thread-%03d", this.prefix, this.threadNumber.getAndIncrement()), 0);
  
      if (t.isDaemon()) {
        t.setDaemon(false);
      }
  
      if (t.getPriority() != Thread.NORM_PRIORITY) {
        t.setPriority(Thread.NORM_PRIORITY);
      }
  
      if (this.uncaughtExceptionHandler != null) {
        t.setUncaughtExceptionHandler(this.uncaughtExceptionHandler);
      }
  
      return t;
    }
docs: Creates a new thread.
  
  @param r the runnable