code: protected Executor executor() {
      return new Executor() {
        @Override
        public void execute(Runnable command) {
          MoreExecutors.newThread(threadNameSupplier.get(), command).start();
        }
      };
    }
docs: 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.