ExecutorService只运行最近添加的Callable



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

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

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

对此有什么想法吗?

不要得到它,为什么不保存向服务发布可调用时返回的Future,如果不想执行它,则保存将来的cancel()

例如

Future f1 = service.submit(some_task);
// later
f1.cancel(true); // will interrupt if running...

清洁器IMO.…

最新更新