guava/src/com/google/common/util/concurrent/AbstractIdleService.java
protected Executor executor() {
    return new Executor() {
      @Override
      public void execute(Runnable command) {
        MoreExecutors.newThread(threadNameSupplier.get(), command).start();
      }
    };
  }
protected Executor executor() {
    return new Executor() {
      @Override
      public void execute(Runnable command) {
        MoreExecutors.newThread(threadNameSupplier.get(), command).start();
      }
    };
  }
Returns the {@link Executor} that will be used to run this service. Subclasses may override
this method to use a custom {@link Executor}, which may configure its worker thread with a
specific name, thread group or priority. The returned executor's {@link
Executor#execute(Runnable) execute()} method is called when this service is started and
stopped, and should return promptly.