我在 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);
}
我自己实现了runnable( VideoExportThread
),它包含一个getProgress()
跟踪提交任务进度的方法。我提交的实例如下:
executor.submit(new VideoExportThread(gcmPath));
我正在寻找一种查询 executor/blockingQueue 以获取当前/待处理线程的方法。我尝试使用jobQueue.toArray()
并覆盖 executor 方法beforeExecute(Thread t, Runnable r)
,但在这两种情况下,返回的 runnable 都是 FutureTask 类型,它不包含太多数据。有没有办法让我使用它来检索我的原始VideoExportThread
实例以识别哪些正在运行并查询其进度?
谢谢