executorservice相关内容

当线程在Java中死亡时,ThreadPoolExecutor会发生什么

我创建了一个线程,该线程又创建了一个ThreadPoolExecutor并向其提交一些长时间运行的任务.在某些时候,原始线程由于未处理的异常/错误而死亡.执行程序应该怎么办(它是该死线程的本地对象,没有外部引用该死线程)?是否应该GC? 编辑:这个问题从一开始就被错误地提出,但是我会把它保留下来,因为格雷提供了有关TPE工作原理的一些很好的细节. 解决方案 线程被称为 GC根.这意味 ..
发布时间:2020-11-02 01:40:26 Java开发

没有用于守护程序的守护进程线程的执行上下文

我在使用我编写的通过Scala 2.10 Futures + Promises框架生成线程的各种新应用程序后立即退出JVM遇到了麻烦. 似乎,至少在默认执行上下文中,即使我正在使用阻塞,例如 future { blocking { /* work */ }} 没有启动非守护程序线程,因此JVM认为它可以立即退出. 一个愚蠢的解决方法是启动一个虚拟的Thread实例,该实例只是 ..
发布时间:2020-11-02 01:40:17 其他开发

Java是否提供一个ExecutorService来允许工作程序在同一线程上执行?

我正在寻找 ExecutorService 的实现,它将提供以下语义。每个线程都由一个“工人”占用,该工人根据输入执行某些任务。保证每个工作程序只能在单个线程中执行,因此,应该允许它维护任务与任务之间的状态,而没有同步开销,因为它将在单个线程中与自己同步。 因此,假设我有100个输入和10个工人,我希望能够编写如下内容: for(输入输入:输入){ //下面的代码会将t传递给所有1 ..

Spring-添加低优先级的多线程服务(不影响生产性能)

我们有一个Spring应用程序,我想添加一个服务,该服务将处理具有多个线程的10K ID,但将作为后台进程,而不会实时影响生产. 服务将更新数据库并发送外部提供商请求. 我不希望服务影响/影响生产性能/时间安排,我想以较低的优先级对每个ID执行操作 我阅读了以前的帖子关于在Executer中设置优先级,但我希望可以降低此特定Executer范围之外的所有其他线程的优先级. ..
发布时间:2020-07-09 06:47:07 Java开发

Java ExecutorService-扩展

我正在尝试使用ExecutorService及其功能invokeAll用Java编写程序.我的问题是:invokeAll函数是否可以同时解决任务?我的意思是,如果我有两个处理器,那么会同时有两个工人吗?因为aI无法使其正确缩放.如果我给出newFixedThreadPool(2)或1,则需要花费相同的时间来解决问题. List> list = ..

Java:如何获取完成的线程以从运行线程中提取任务

我正在处理具有不同运行时间的任务的多线程应用程序.当一个线程结束时,是否有办法从仍在运行的线程中接管一些任务? 这里是一个例子.我从5个线程开始我的程序,每个线程有50个任务.当运行速度最快的线程完成时,另一个线程仍然有40个任务要完成.我如何才能从另一个线程中获取完成的线程来执行20个任务,因此每个线程继续执行20个任务,而不是等待正在运行的线程完成剩余的40个任务? 解决方案 使 ..

如何通过Java中的Executor框架在DynamoDb中获得最佳的批量插入率?

我正在使用Java DynamoDB SDK在本地Dynamo DB中进行批量写入(大约5.5k项)的POC。我知道每个批量写入操作不能超过25个写入操作,因此我将整个数据集分为25个项目。然后,我将这些块作为可执行程序传递给Executor框架。不过,由于在100多秒内插入了5.5k记录,我的结果仍不令人满意。 我不确定我还能如何优化它。在创建表格时,我将WriteCapacityUnit ..

如何配置和调整Akka Dispatchers

我正在这里查看文档: http://doc.akka。 io / docs / akka / 2.3.3 / java / dispatchers.html 我们使用Akka的方式是,我们有两个单独的调度程序(不同参与者的默认fork-join执行者)。现在,我们遇到了一些性能问题,我们正在研究如何调整调度程序配置参数,并查看它们如何影响应用程序的性能。 I已经查看了文档,但并不太了解 ..
发布时间:2020-06-03 18:37:46 Java开发

如何在Akka调度程序中使用自定义执行程序

我正在尝试在Akka中为调度程序使用自定义执行程序。 特别是,我想用我自己的包装现有执行程序(记录,调试等)。 。 我看过文档: 可以配置默认调度程序,默认情况下是具有“ fork-join-executor”的分派器,在大多数情况下,该分派器均具有出色的性能。 和 使用“执行器”指定,使用“ fork-join-executor”,“ thread-pool-exe ..
发布时间:2020-06-03 18:36:58 其他开发

Java ExecutorService上的Fibonacci顺序运行比并行运行更快

我正在尝试使用Java执行服务,并编写了以下代码来运行Fibonacci(是的,是大型递归版本,只是为了强调执行服务). 令人惊讶的是,如果将nThreads设置为1,它将运行得更快.这可能与以下事实有关:提交给执行程序服务的每个“任务"的大小确实很小.但是如果我将nThreads设置为1,它仍然必须是相同的数字. 要查看对共享Atomic变量的访问是否可能导致此问题,我用注释"see ..
发布时间:2020-05-24 21:50:08 Java开发

一起运行多个线程池(ExecutorService)

我有一个对象,需要通过4个场景来运行.我想在2个线程之间拆分(这样我就可以发送到其他服务器) 我已经在2台服务器上使用了此功能,但是在尝试清理代码时,我创建了如下所示的内容: ExecutorService executor1 = Executors.newFixedThreadPool(1); ExecutorService executor2 = Executors.newFixed ..
发布时间:2020-05-14 01:58:32 Java开发

Runnable和ExecutorService的奇怪行为

我在多线程中遇到了一些非常奇怪的行为.我有两个类:DipoleTester和Dipole. DipoleTester尝试创建多个Dipole对象,然后异步运行它们.问题在于DipoleTester只是一次运行所有其Dipole对象,而不是一次运行2个. 这里是DipoleTester: public class DipoleTester { public static S ..
发布时间:2020-05-14 01:54:02 Java开发

创建一个作业队列或任务控制器,并用Java动态地向其中添加任务

大家好,我想创建一个作业队列来执行多个任务.但是,我的要求是我应该能够随时将任务添加到该作业队列中,并且所有这些任务应按顺序执行.我在互联网上搜索了一些解决方案,并找到了这两个链接1) Java Executor框架教程和最佳做法.但是我不能同时使用这两种解决方案.因为启动Executor服务后,我无法向该服务添加新任务.因为我们知道它可能会抛出InterruptedException或Concu ..
发布时间:2020-05-14 01:46:15 Java开发

ScheduledExecutorService和ThreadPoolTask​​Executor在超时后中断任务

我使用ExecutorService在超时后中断任务,为此我使用ScheduledExecutorService.首先,我提交了该线程,并且该线程一次立即开始,并保留了创建的将来.之后,我将ScheduledExecutorService用作一项新任务,它将在一段时间后取消保留的将来. //Start Spring executor to submit tasks ThreadPoolTa ..