ThreadPoolExecutorでいくつかのタスクを実行しています。私はそれを次のように初期化します:
private VideoExportExecutor executor;
private BlockingQueue<Runnable> jobQueue;
public void initialiseVideoProcessor()
{
jobQueue = new LinkedBlockingQueue<Runnable>();
executor = new VideoExportExecutor(1, 1, Long.MAX_VALUE, TimeUnit.SECONDS, jobQueue);
}
送信されたタスクの進行状況を追跡VideoExportThread
するメソッドを含むrunnable()の独自の実装を作成しました。getProgress()
私はこれのインスタンスを次のように提出します:
executor.submit(new VideoExportThread(gcmPath));
現在/保留中のスレッドについてexecutor/blockingQueueにクエリを実行する方法を探しています。executorメソッドを使用jobQueue.toArray()
してオーバーライドしようとしましbeforeExecute(Thread t, Runnable r)
たが、どちらの場合も、返されるランナブルはFutureTask型であり、多くのデータが含まれていません。VideoExportThread
実行中のインスタンスを識別し、その進行状況を照会するために、それを使用して元のインスタンスを取得する方法はありますか?
ありがとう