如何遍历java中的队列

时间:2013-02-11 15:11:44

标签: java android concurrency

我有ThreadPoolExecutor来完成我的DownloadTask implements Runnable{private String taskId...任务,我需要有时间从ThreadPoolExecutor队列中获取定义任务,例如,使用任务ID :

mDownloadTasksPool.getQueue();

访问队列和获取定义元素的最佳方法是什么?

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

1 个答案:

答案 0 :(得分:1)

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