1

我有一个ThreadPoolExecutor可以完成我的任务的DownloadTask implements Runnable{private String taskId...任务,并且我需要随时有可能从ThreadPoolExecutor队列中获取定义的任务,例如,使用任务 ID:

mDownloadTasksPool.getQueue();

遍历队列并获得定义元素的最佳方法是什么?

可以有一个包含所有重复任务的列表,但它看起来不是很优雅。

4

1 回答 1

1

子类化您的 Runnables 以提供 taskID 的 getter(如果那是您的关键)。创建一个并发映射,将您的 taskID 映射到您放入队列中的 Runnable。子类化您的 ThreadPoolExecutor。在 beforeExecute 中,您从该映射中删除当前任务,因为它不再在队列中。您可能希望将 Runnable 强制转换为您的自定义类以使用该 taskID getter。

于 2013-02-11T15:18:20.113 回答