问题标签 [executorservice]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4968 浏览

java - 在 Callbable 与 Runnable 中使用“ExecutorCompletionService”的问题

我一直在使用 ExecutorCompletionService 中的示例代码,并将以下示例代码放在一起。solve() 中的代码按预期工作并打印 solve2() 中的代码不打印任何内容,实际上永远不会退出。ecs 是在将作业提交到 ExecutionService 之前还是之后构造的,都没有关系。
1
2
3
4
5

有没有办法将 CompletionService 构造与 FutureTasks 一起使用?我已经重写了我的生产代码以直接获取() FutureTask 的结果,而不是尝试从 ExecutorCompletionService 获取()它们,但它(当前)导致了一些看起来很乱的东西。简而言之,下面的solve2有什么问题?谢谢。

}

0 投票
2 回答
4749 浏览

java - Java:它创建的计时器和线程

我有这个问题:

我有一个计时器。使用 scheduleAtFixedRate 它创建一个新的 Timer 任务。在那个计时器任务中有一些代码,可能需要一段时间才能完成。当前一个任务尚未完成时,如何确保 Timer 不会创建新任务?

谢谢

0 投票
4 回答
3732 浏览

java - 如何报告后台任务的进度?

我有一个长时间运行的任务,它在 ExecutorService 线程池的后台执行。就此任务返回进度或中间结果而言,有哪些最佳实践?有没有提供此功能的库?

编辑:为了澄清,我说的是向其他代码报告进度,而不是向用户报告。

通常我会使用 SwingWorker,但我正在为 Grails 应用程序使用 Java/Groovy 后端,我不确定它在无头服务器环境中的行为如何,因为它具有 EDT 关系。

另一个例子是 Eclipse RCP 中的 Jobs 框架,但我需要一些与 UI 无关的东西。

0 投票
8 回答
24531 浏览

java - Controlling Task execution order with ExecutorService

I have a process which delegates asynch tasks to a pool of threads. I need to ensure that certain tasks are executed in order. So for example

Tasks arrive in order

Tasks a1, b1, c1, d1 , e1, a2, a3, b2, f1

Tasks can be executed in any order except where there is a natural dependancy, so a1,a2,a3 must be processed in that order by either allocating to the same thread or blocking these until I know the previous a# task was completed.

Currently it doesn't use the Java Concurrency package, but I'm considering changing to take avantage of the thread management.

Does anyone have a similar solution or suggestions of how to achieve this

0 投票
4 回答
1014 浏览

java - 当所有活动线程都是守护进程时,为什么 EDT 不关闭?

以下代码在屏幕上滑动一张卡片。当我关闭主窗口时,我希望事件调度线程也会关闭,但事实并非如此。关于为什么 ScheduledExecutorService 线程阻止 EDT 关闭的任何想法?

0 投票
3 回答
18923 浏览

java - 生产者/消费者工作队列

我正在努力寻找实现我的处理管道的最佳方式。

我的生产者将工作提供给 BlockingQueue。在消费者方面,我轮询队列,将我得到的内容包装在一个 Runnable 任务中,然后将其提交给一个 ExecutorService。

这并不理想;当然,ExecutorService 有自己的队列,所以真正发生的是我总是完全排空我的工作队列并填充任务队列,随着任务完成,任务队列会慢慢清空。

我意识到我可以在生产者端排队任务,但我真的不想那样做——我喜欢我的工作队列的间接/隔离是哑字符串;这真的与制片人无关,他们会发生什么。强制生产者对 Runnable 或 Callable 进行排队会破坏抽象,恕我直言。

但我确实希望共享工作队列代表当前的处理状态。如果消费者跟不上,我希望能够阻止生产者。

我很想使用 Executors,但我觉得我在与他们的设计作斗争。我可以喝部分 Kool-ade,还是必须一饮而尽?我在抵制排队任务方面是不是走错路了?(我怀疑我可以设置 ThreadPoolExecutor 以使用 1 任务队列并覆盖它的执行方法来阻止而不是拒绝队列满,但这感觉很糟糕。)

建议?

0 投票
12 回答
201313 浏览

java - 处理来自 Java ExecutorService 任务的异常

我正在尝试使用 Java 的ThreadPoolExecutor类来运行具有固定数量线程的大量重量级任务。每个任务都有很多地方可能由于异常而失败。

我已经子类ThreadPoolExecutor化并且我已经覆盖了afterExecute应该提供运行任务时遇到的任何未捕获异常的方法。但是,我似乎无法让它工作。

例如:

该程序的输出是“一切正常——情况正常!” 即使提交给线程池的唯一 Runnable 抛出异常。有什么线索吗?

谢谢!

0 投票
2 回答
26899 浏览

java - 优雅地为 ExecutorServices 实现队列长度指示器

为什么,哦,为什么不java.util.concurrent为其ExecutorServices 提供队列长度指示器?最近我发现自己在做这样的事情:

哪个工作正常,但是...我认为这确实应该作为ExecutorService. 携带与实际队列分离的计数器是愚蠢且容易出错的,计数器应该指示其长度(让我想起 C 数组)。但是,ExecutorServices 是通过静态工厂方法获得的,因此无法简单地扩展原本出色的单线程执行器并添加队列计数器。所以我该怎么做:

  1. 重新发明已经在 J​​DK 中实现的东西?
  2. 其他聪明的解决方案?
0 投票
2 回答
13261 浏览

java - 在 ExecutorService 任务中停止无限循环

有没有办法让我停止执行无限循环的线程?

0 投票
1 回答
245 浏览

java - 在 Java 线程池中的每个工作线程上调用自定义关闭方法的优雅方法是什么?

说我正在使用

完成一些工作并等待完成。

但是,我在工作线程中有相同的 Threadlocal 对象,批处理完成后需要关闭这些对象。因此,我希望能够在线程池创建的所有工作线程上调用自定义关闭方法。

最优雅的方法是什么?

现在作为一个黑客我正在使用:

但这对我来说看起来并不特别强大;-)

谢谢GJ