1

我需要按顺序执行任务:

Executor executor = Executors.newSingleThreadExecutor();

public void push(Runnable task) {
   executor.execute(task);
}

有时一项任务永远不会结束。我想设置一个超时以防止它阻塞下一个。

编辑:我需要一个“一劳永逸”的设计,因为我不能阻止这个执行的调用者

4

1 回答 1

1

这可以使用 Future 对象来完成。

ExecutorService executor = Executors.newSingleThreadExecutor();

    Runnable task = new Runnable() {
        @Override
        public void run() {
            //do your task
        }
    };

    Future<?> future = executor.submit(task);

    future.get(60, TimeUnit.SECONDS); // awaits termination 
于 2015-07-01T14:03:27.767 回答