问题标签 [executors]

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 回答
2528 浏览

java - Java 线程静默崩溃 - 我无法捕获异常

我看到我无法解释的行为

我有一个 Runnable,它的代码是:

这种行为很奇怪,因为我得到的唯一打印是“开始” - 我希望得到“问题”和“方法结束”打印。如果 doSomething 本身处理异常 - 那么将打印“结束”。但除了“开始”之外,我没有得到任何印刷品

现在我知道 doSomething 方法存在一些问题,就好像我没有通过执行程序服务运行它一样,我得到“方法未找到”异常。

我认为它可能以某种方式连接到我使用的 Executor 服务 - Executors.newFixedThreadPool,但我无法解释

谢谢你的建议!

0 投票
2 回答
2996 浏览

java - 如何知道线程何时停止或停止?

我有下一个代码:

对于每个DispatcherThread我创建一个到数据库的连接(这意味着我有 20 个连接),我需要知道的是如何在线程停止或它停止或完成其流程时关闭与数据库的连接。

0 投票
2 回答
5141 浏览

jenkins - 在 Jenkins 中选择执行者?

在我的公司中,我们使用单个 Jenkins 构建服务器。我们有资源密集型相互依赖的构建工作以及较小的工作,同样重要。在高峰时期,大型构建往往会阻塞管道。

我的问题:是否有可能以某种方式选择单个执行程序(不是节点)并为其分配某些作业,以便轻量级执行程序始终免费?

知道我可以设置从节点,即使在同一台机器上,它也很常见,并且受到 Jenkins 的大力支持。我们的服务器可以处理作为从属服务器运行的虚拟机,但在我遇到麻烦之前,我想知道是否有更短的方法。

干杯

0 投票
1 回答
254 浏览

android - Android:使线程在AlarmBroarcastReceiver中逐个运行

请征求您的意见,我是 Android 编程的新手。

我正在编写一个类似闹钟的软件,并使用公共类AlarmManagerBroadcastReceiver 扩展BroadcastReceiver 来捕捉AlarmManager 之前设置的警报。
为了不中断 UI,我在此类的 public void onReceive(Context context, Intent intent) 中使用了新线程。通常它看起来像这样:

公共类 AlarmManagerBroadcastReceiver 扩展 BroadcastReceiver {

}

有时我的应用会面临多个广播同时出现的情况。这会导致同时执行多个线程我不想发生这种情况,因为它会干扰有用的代码。

我希望线程进入队列并一个接一个地运行。如果您以前遇到过这种情况,请您多多指教,有什么办法可以做到吗?

据我所知,问题是我制作了执行者。newSingleThreadExecutor()每次广播出现时,都会创建新的执行程序,线程不会进入旧队列,而是进入新队列,因此它们再次同时运行。

0 投票
2 回答
48 浏览

java - Java Executor 在特定时间的时间范围内

我需要在定义的时间范围内每隔 x 小时调用一次任务,并每天重复一次。我唯一的想法是将执行时间计算为当前时间的延迟,并通过 scheduleAtFixedRate 和 24 小时的速率在单独的线程中启动每个执行时间。有人有更好的主意吗?

问候

0 投票
1 回答
241 浏览

java - Executors 内部的数据结构

我们可以在定义 ThreadPoolExecutors 的同时提供一个 BlockingQueue 实现。但是,如果我使用工厂(Executors)创建如下所示的单个线程池,我想知道使用哪个阻塞队列。我猜它是一个 LinkedBlockingQueue。该文档讨论了无界队列,但没有透露实现。

0 投票
1 回答
657 浏览

java - Java Executor在前一个完成后执行一个Callable?

我有一个自定义业务需求。我需要执行一系列服务调用。这些调用中的每一个都会在数据库中创建一条新记录。我需要在上一个服务调用完成后执行下一个服务调用,因为新的服务调用将使用上一个服务调用在数据库中创建的记录作为输入参数。

我决定将这些服务调用中的每一个包装在 Future Tasks 中,然后用于Executors.newSingleThreadExecutor()循环执行这些任务。

请建议它是否足够,如果它不会有更好的解决方案?

我还需要task.isDone()在执行下一个任务之前放置吗?

0 投票
1 回答
1067 浏览

java - Executors.newSingleThreadExecutor() thread is alive althoughTimeout is 0L

I was using Executors.newSingleThreadExecutor() and I am a bit confused about how it works. Let's say I am not calling shutdown(). I looked at the available source code http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/concurrent/Executors.java#Executors.newSingleThreadExecutor%28%29 and it says:

So, my assumption is after a task is executed even if I do not call shutdown() the thread should be stopped and a new Thread should be created if I call a task again on the same executor. But when I ran a code it gave a different output. Can someone explain the behavior? Here's the code:

Here's the output:

I thought the Old name: in the 4th line should be pool-1-thread-1 as the existing thread has a timeout of 0L. So, a new thread should be created. Instead it is using the previous thread

0 投票
1 回答
161 浏览

java - 终止生产者消费者多线程 Java

我正在用多线程和 Java 并发特性做一些练习。我有 1 个生产者和 4 个消费者。现在我的问题是:当我确定生产者已经在 BlockingQueue 中完成生产时,还有其他更聪明的方法来阻止消费者吗?现在我在队列中使用 -1 Integer,但看起来非常初级!谢谢

}

0 投票
0 回答
220 浏览

java - Runnable 和 Callable 上的 ThreadPool / Executor - 可以自动退出 java8

我正在尝试在我的应用程序中使用 ThreadPoolExecutor/ExecutorService - 它是一个静态全局对象。我使用:Executors.newScheduledThreadPool(corePoolSize) - 但我在关闭 executorService 时遇到问题。

如果我不调用 shutdown() + awaitTermination() - 那么我的应用程序将不会完成 - 即使所有线程都已完成。

我的应用程序有由其他线程创建的线程 - 所以我不能在代码中的任何地方放置一个 shutdown() 而不阻止更多线程运行。

有没有办法让 java shutdown() 在所有线程完成后执行执行程序服务。

谢谢

- 这个问题也不是重复的 - 守护程序修复使我的应用程序在所有线程完成之前退出(见评论) - 对此有什么修复?谢谢