1

私はThreadPoolExecutor自分のタスクを満たすを持っています。たとえば、タスク ID を使用してDownloadTask implements Runnable{private String taskId...、いつでもキューから定義タスクを取得できるようにする必要があります。ThreadPoolExecutor

mDownloadTasksPool.getQueue();

キューを走査して定義要素を取得する最良の方法は何ですか?

すべての重複タスクを含むリストを作成することは可能ですが、見た目はあまりエレガントではありません。

4

1 に答える 1

1

Runnables をサブクラス化して、taskID のゲッターを提供します (それがキーの場合)。並行マップを作成し、タスク ID をキューに入れている Runnable にマッピングします。ThreadPoolExecutor をサブクラス化します。beforeExecute では、現在のタスクがキューにないため、そのマップから現在のタスクを削除します。Runnable をカスタム クラスにキャストして、その taskID ゲッターを使用することができます。

于 2013-02-11T15:18:20.113 に答える