docs: private void moveFiles(FileLoadContext context, List<FileData> fileDatas, File rootDir) {
          Exception exception = null;
          adjustPoolSize(context);
          ExecutorCompletionService<Exception> executorComplition = new ExecutorCompletionService<Exception>(executor);
  
          List<Future<Exception>> results = new ArrayList<Future<Exception>>();
          for (FileData fileData : fileDatas) {
              Future<Exception> future = executorComplition.submit(new FileLoadWorker(context, rootDir, fileData));
              results.add(future);
  
              // fast fail
              if (future.isDone()) { // 如果是自己执行的任务(线程池采用 CallerRunsPolicy)，则立刻进行检查
                  try {
                      exception = future.get();
                  } catch (Exception e) {
                      exception = e;
                  }
                  if (exception != null) {
                      for (Future<Exception> result : results) {
                          if (!result.isDone() && !result.isCancelled()) {
                              result.cancel(true);
                          }
                      }
                      throw exception instanceof LoadException ? (LoadException) exception : new LoadException(exception);
                  }
              }
  
          }
  
          int resultSize = results.size();
          int cursor = 0;
          while (cursor < resultSize) {
              try {
                  Future<Exception> result = executorComplition.take();
                  exception = result.get();
              } catch (Exception e) {
                  exception = e;
                  break;
              }
              cursor++;
          }
  
          if (cursor != resultSize) { // 发现任务出错，立刻把正在进行的任务取消
              for (Future<Exception> future : results) {
                  if (!future.isDone() && !future.isCancelled()) {
                      future.cancel(true);
                  }
              }
  
          }
  
          if (exception != null) {
              throw exception instanceof LoadException ? (LoadException) exception : new LoadException(exception);
          }
      }