我需要按顺序执行任务:
Executor executor = Executors.newSingleThreadExecutor();
public void push(Runnable task) {
executor.execute(task);
}
有时一项任务永远不会结束。我想设置一个超时以防止它阻塞下一个。
编辑:我需要一个“一劳永逸”的设计,因为我不能阻止这个执行的调用者
我需要按顺序执行任务:
Executor executor = Executors.newSingleThreadExecutor();
public void push(Runnable task) {
executor.execute(task);
}
有时一项任务永远不会结束。我想设置一个超时以防止它阻塞下一个。
编辑:我需要一个“一劳永逸”的设计,因为我不能阻止这个执行的调用者
这可以使用 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