executorservice相关内容

如何从后台任务报告进度?

我有一个在ExecutorService线程池后台执行的长时间运行的任务。在返回进度或中间结果的任务方面,有哪些最佳实践?有没有提供此功能的库? 编辑:为了澄清,我说的是向其他代码报告进度,而不是用户。 通常我会使用SwingWorker,但是我正在使用Grails应用程序的Java / Groovy后端,我不确定在无头服务器环境中它会如何表现,因为它有EDT绑定。 另一个例子是 ..
发布时间:2019-01-02 22:36:39 Java开发

ExecutorService,如何知道所有线程何时完成而不阻塞主线程?

我有一个多线程实现,我在其中创建一个ExecutorService并提交要执行的任务,我想知道所有线程被提交的时间已经完成而没有阻塞主线程和UI。我已经尝试过 ExecutorService.awaitTermination()但它阻止了主线程和UI。我搜索了很多,但我似乎无法找到一种优雅的方式来做到这一点。我正在考虑创建另一个线程来计算完成的线程数量,并在它们全部完成时启动一个事件,但这不是一个 ..
发布时间:2019-01-02 15:01:53 Java开发

线程池执行程序监视要求

在我们的生产环境中,我们使用Thread Pool Executor来执行runntable任务。我需要为线程池执行器服务开发一个线程池心跳监视系统: 每60秒,需要收集关于线程池执行器的以下统计信息: 1)线程池的大小 2)等待线程的队列长度(持续时间或时间)任务在线程执行前在阻塞队列中等待) 3)上一次心跳间隔期间队列中的平均等待时间 4)当前活动线程 5) ..
发布时间:2019-01-02 10:10:32 Java开发

Android线程可运行的性能

我想知道2种不同的启动runnables方法的性能和cpu / ram要求 我有一些代码每10ms收集一次传感器数据并插入值到后台线程上的数据库(使用单个线程执行程序)。 Executor服务创建如下: executor = Executors.newSingleThreadExecutor(); 其中一种方法就是...... public void onSensorCh ..
发布时间:2018-12-29 19:58:11 Java开发

ExecutorService,按顺序执行任务但从池中获取线程

我正在尝试构建 ExecutorService 的实现,让我们称之为 SequentialPooledExecutor ,具有以下属性。 SequentialPooledExecutor 的所有实例共享相同的线程池 按顺序执行对 SequentialPooledExecutor 的同一实例的调用。 换句话说,实例在开始处理其下一个任务之前等待当前正在执行的任务的终止排队。 ..

HashedWheelTimer与ScheduledThreadPoolExecutor具有更高的性能

如果您需要在一台计算机上的jvm内尽可能快地安排大量(非阻塞)任务,我正在计算要使用的计时器实现。 我研究过 ScheduledThreadPoolExecutor 和 HashedWheelTimer 来源(+轮定时器一般文档),这里是基本差异(N - 数字)到目前为止所有未完成的预定任务,C - 轮尺寸): ScheduledThreadPoolExecutor O(log ..
发布时间:2018-12-27 20:06:30 Java开发

线程终止时的Java ExecutorService回调

我正在使用缓存线程池ExecutorService来运行一些异步后台任务。我已经提供了我的ThreadFactory,它将线程分发给ExecutorService(只要它需要它们)。我对缓存线程池的理解是,在线程空闲60秒后,它由ExecutorService终止。 我希望在我的线程即将被终止时执行一些状态清理。实现这一目标的最佳方法是什么? ExecutorService不容易为线程的生命 ..
发布时间:2018-12-27 19:23:52 Java开发

使用Executors服务在Java中创建固定大小线程池的最佳方法

我在Java中使用 Executors 框架为多线程应用程序创建线程池,我有一个与性能相关的问题。 我有一个可以在实时或非实时模式下工作的应用程序。如果它是实时的,我只是使用以下内容: THREAD_POOL = Executors.newCachedThreadPool(); 但是如果它不是实时的,我希望能够控制我的线程池的大小。 为了做到这一点,我正在考虑2个 ..
发布时间:2018-12-27 18:22:19 Java开发

捕获当前线程的执行程序

我正在使用来自Guava的ListenableFuture ,关于它们的一个好处是一次传递执行程序到 Futures.addCallback 方法,即要求在给定的线程/执行程序上执行回调。 在我的Android应用程序中,我希望能够在UI线程中基于 ListenableFuture 启动异步执行,并安排一个也在UI线程上执行的回调。因此,我想以某种方式将UI线程执行程序提交到上面提到的 Fu ..
发布时间:2018-12-26 13:10:04 Java开发

Java中最快的循环同步是什么(ExecutorService与CyclicBarrier vs.X)?

哪个Java同步构造可能为并发迭代处理场景提供最佳的 性能,并且具有 固定数量的线程,如下所示?在我自己尝试 一段时间后(使用ExecutorService和CyclicBarrier)和 对结果感到有些惊讶,我会感激一些 专家建议,也许还有一些新想法。这里的现有问题确实不是主要关注性能,因此这个新问题。 提前致谢! 该应用程序的核心是一个简单的迭代数据处理算法, 并行化,以便 ..

Java支持三种不同的并发模型

我在多线程环境中经历了不同的并发模型( http:/ /tutorials.jenkov.com/java-concurrency/concurrency-models.html ) 本文重点介绍三个并发模型。 并行工人 第一个并发模型就是我所说的并行工模型。传入的工作分配给不同的工作人员。 装配线 工人在工厂的装配线上被组织成工人。每个工人只执行完整工作的一部分。当 ..