ExecutorService仅运行最近添加的Callable

时间:2012-02-09 00:36:54

标签: java multithreading executorservice executor executors

我有一个单线程执行程序服务,用于通过网络获取一些数据。

当用户在搜索框中输入时,我正在排队可能的网络任务。我想要的是取消所有先前的请求,只排队并立即运行最新的请求。

我目前的做法是在调用super之前覆盖execute()和submit()方法并清除队列。

对此有何想法?

1 个答案:

答案 0 :(得分:5)

不明白,为什么不保存在向服务发布可调用内容时返回的Future,如果您不希望它被执行,则为cancel()未来。

e.g。

Future f1 = service.submit(some_task);

// later

f1.cancel(true); // will interrupt if running...

清洁IMO ......