java - 确定哪些 Callables 当前正在 ExecutorService 中运行

标签 java multithreading executorservice callable

我希望能够获得我拥有的 Callables submit发送给当前正在进行的 ExecutorService(特别是 ThreadPoolExecutor)(因此它们无法通过 getQueue() 获得)。

我尝试创建一个子类来覆盖 beforeExecute,但给出的 Runnable 结果是一个 FutureTask,而不是提交的原始 Callable。

还有其他方法可以确定 Activity 的 Callables 吗?


最终我想用这些信息做两件事:

  1. 获取正在运行的任务,以便在用户界面中显示它们
  2. 检查 Callable 引用的文件是否与模式匹配,如果是,则取消它

最佳答案

您可以覆盖 AbstractExecutorService.newTaskFor(),它应该允许您访问原始的 RunnableCallable。然后用您的跟踪装饰器装饰它们并传递给 super.newTaskFor()

关于java - 确定哪些 Callables 当前正在 ExecutorService 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12414767/

相关文章:

c++ - 锁定互斥量与访问磁盘

android - 在android中设置录音的时间限制

java - ExecutorService 比复制文件的顺序文件进程慢

java - 当executor遇到Thread.sleep时,为什么线程没有 hibernate 就结束或者抛出InterruptedException?

java - 为什么我没有得到保存的首选项?

java - Swing windowStateChanged 监听器返回组件以前的属性值

java - LinkedList并发修改异常

c++ - "data ready"标志的同步机制?

JAVA - ScheduledExecutorService 不退出线程

java - 如何将 "MM-dd-yyyy hh:mm"字符串日期格式转换为 GMT 格式?