Java Future - 推迟任务

时间:2018-06-06 10:12:15

标签: java multithreading callable futuretask

我有以下两个调用doDataInit()的init方法:

   public void sessionBegin(SessionEvent event)
         throws Exception {
      ....
      doDataInit();
   }

   public void init() {
      ...
      doDataInit();
   }

和方法:

private Future<WorkItems>
         doDataInit() {
      //do some stuff
      Callable<WorkItems> initData = getData();
      Future<WorkItems> result = EXECUTOR.submit(initData);
      return result;
   }

现在我要做的是在doDataInit方法内部进行检查,如果为true则将睡眠任务执行。或者说 - 我想阻止任务的执行,直到满足某个条件并定期检查是否满足给定条件。一旦它 - 继续执行。

在这种情况下,最好(最有效)的方法是什么?

我现在能想到的是:

  • 睡觉线程 - 无效
  • 以某种方式阻止可调用的
  • 阻止执行者
  • 有一个for循环,我执行检查的次数

提前致谢。

0 个答案:

没有答案