code: public synchronized ScheduledService start() {
          if (started) {
              return this;
          }
          if (scheduledExecutorService == null) {
              scheduledExecutorService = new ScheduledThreadPoolExecutor(1,
                  new NamedThreadFactory(threadName, true));
          }
          ScheduledFuture future = null;
          switch (mode) {
              case MODE_FIXEDRATE:
                  future = scheduledExecutorService.scheduleAtFixedRate(runnable, initialDelay,
                      period,
                      unit);
                  break;
              case MODE_FIXEDDELAY:
                  future = scheduledExecutorService.scheduleWithFixedDelay(runnable, initialDelay, period,
                      unit);
                  break;
              default:
                  break;
          }
          if (future != null) {
              this.future = future;
              // 缓存一下
              SCHEDULED_SERVICE_MAP.put(this, System.currentTimeMillis());
              started = true;
          } else {
              started = false;
          }
          return this;
      }
docs: 开始执行定时任务
  
  @return the boolean
  @see ScheduledExecutorService#scheduleAtFixedRate(Runnable, long, long, TimeUnit)
  @see ScheduledExecutorService#scheduleWithFixedDelay(Runnable, long, long, TimeUnit)