threadpoolexecutor相关内容

MultiThreading与ThreadPoolExecutor

我在我编写的许多应用程序中使用过多线程。在阅读更多内容时,我遇到了 ThreadPoolExecutors 。我无法区分这两种情况。 我理解的是,当我有一项任务时,我应该使用多线程我想将任务分成多个小任务来利用CPU并更快地完成工作。当我设置任务并且每个任务可以相互独立运行时,使用 ThreadPoolExecutor 。 请如果我错了,请纠正我。谢谢 解决方案 ThreadP ..

LinkedBlockingQueue put vs offer

我有一个链接阻塞队列,我在其中执行插入和删除操作。 我需要知道哪一个更好 put 或 offer 。 性能参数是CPU利用率,内存和整体吞吐量。 应用程序使用是实时系统,其中可以有多个传入请求和更少的线程来处理我们需要在队列中插入元素的位置。 我阅读了Java文档的put和offer,内部应用程序没有太大区别。 解决方案 实际上,你无法比较这两者之间的表现,报价方法 ..
发布时间:2019-01-02 11:22:34 Java开发

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

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

外部共享资源的Java并发模式(智能卡)

我有一个Web服务器服务,客户端请求智能卡计算并获得结果。 在服务器正常运行期间可用智能卡号可以减少或增加,例如我可以从阅读器中物理添加或删除智能卡(或许多其他事件......例如异常等) 。 智能卡计算可能需要一段时间,如果有对Web服务器的并发请求,我必须优化这些作业以使用所有可用的智能卡。 我认为可以使用智能卡线程池。至少对我而言,不寻常的是,池应该改变其大小,而不是取决于客户 ..

ThreadPoolExecutor:任务排队等待但未提交

我们有一个场景,提交给ThreadPoolExecutor的任务长时间运行。当线程池启动时,我们启动它,核心池大小= 5,最大池大小= 20,队列大小为10.在我们的应用程序中,大约有10个任务被提交。大多数情况下,这些任务运行几分钟/小时然后完成。然而,有一种情况是所有5个任务都被I / O挂起。结果我的核心池大小达到了最大值,但我的Threadpoolexecutor队列未满。所以额外的5个任 ..
发布时间:2018-12-26 15:08:29 Java开发

从ThreadPoolTask​​Executor获取可调用性或将Runnable强制转换为Callable

我正在使用 ThreadPoolTask​​Executor 用于执行我的任务,这些任务是 Callable 界面。我只想检查任务是否仍在池中(监控)。怎么做?我知道我可以从 ThreadPoolExecutor 但是如何将Runnable转换为Callable? 基本上我有这个可调用的 公共接口IFormatter扩展Callable { Long getOrd ..
发布时间:2018-12-22 19:16:07 Java开发

如何在ThreadPoolExecutor中访问正在运行的线程?

我有一个运行线程的队列,并希望在执行时公开它的一些数据,以监控进程。 ThreadPoolExecutor 提供对其队列的访问,我可以遍历这些对象来调用我重写的 toString()方法,但这些只是等待的线程执行。 有没有办法访问当前运行的线程来调用我的方法?或者也许这个任务有更好的方法吗? 为了更清楚地说明目的,这里有一些一般性的代码: public class Get ..
发布时间:2018-12-21 19:35:38 Java开发

如何阻止下一个线程在ScheduledThreadPoolExecutor中运行

我有一个ScheduledThreadPoolExecutor,它有一个线程并且每30秒运行一次。 现在,如果当前正在执行的线程抛出一些异常,那么我需要确保下一个线程没有运行且ScheduledThreadPoolExecutor关闭。 我如何实现这个目标? 解决方案 在 ExecutorService 关闭() 启动有序关闭,其中执行先前提交的任务,但不接受任何新 ..

如何从Java在Android设备上运行adb screenrecord并结束屏幕记录?

如何在 Android 设备上运行 adb shell screenrecord 来自 Java 并结束 screenrecording ? 目前我必须指定 - 时间限制结束录制。如果我尝试在结束之前捕获视频,则失败。 有没有办法告诉adb停止录制?有没有办法配置线程将 CTRL-C 发送到 shell 命令? 这是在无根电话上运行。 代码 videoExecuto ..
发布时间:2018-12-07 18:58:02 Java开发

ThreadPoolExecutor - 核心和最大池大小

在方法 execute(java.lang.Runnable)中提交新任务时,少于 corePoolSize 线程正在运行,即使其他工作线程处于空闲状态,也会创建一个新线程来处理请求。 1)如果有空闲线程,为什么需要创建一个新线程来处理请求? 如果有超过 corePoolSize 但小于 maximumPoolSize 线程正在运行,只有队列已满时才会创建新线程。 2)我不明白 ..
发布时间:2018-12-06 13:39:00 Java开发

使用LinkedBlockingQueue的ExecutorService与ThreadPoolExecutor

我正在开发一个多线程项目,我需要生成多个线程来测量客户端代码的端到端性能,因为我正在进行负载和性能测试。所以我创建了下面的代码,它使用 ExecutorService 。 下面的代码是 ExecutorService : public class MultithreadingExample { public static void main( String [] args)抛出 ..

动态线程池

我有一个长时间运行的过程,它会监听事件并进行一些强烈的处理。 目前我使用 Executors.newFixedThreadPool(x)来限制同时运行的作业数量,但取决于当天的时间和其他各种因素,我希望能够动态增加或减少并发线程的数量。 如果我减少并发线程数,我希望当前正在运行的作业能够很好地完成。 是有一个Java库,让我可以控制并动态增加或减少线程池中运行的并发线程数? (该 ..

Executors.newCachedThreadPool()与Executors.newFixedThreadPool()

newCachedThreadPool() 与 newFixedThreadPool() 我应该何时使用非此即彼?哪种策略在资源利用方面更好? 解决方案 我认为文档很好地解释了这两个函数的区别和用法: newFixedThreadPool 创建一个线程池,该池重用 共享无界队列的 固定数量的线程。在任何 点,最多nThreads线程将 作为活动处理任务。如果在 ..

如何让ThreadPoolExecutor在排队之前将线程增加到最大值?

一段时间以来,我一直对 ThreadPoolExecutor 的默认行为感到沮丧,它支持 ExecutorService 线程池我们这么多人都用过。引用Javadocs: 如果有多个corePoolSize但运行的是最多的maximumPoolSize线程,则会创建一个新线程仅当队列已满。 这意味着如果使用以下代码定义线程池,它永远不会启动第二个线程,因为 LinkedBlocking ..
发布时间:2018-11-26 21:54:20 Java开发

处理Java ExecutorService任务中的异常

我正在尝试使用Java的 ThreadPoolExecutor 类来运行具有固定线程数的大量重量级任务。每个任务都有很多地方可能会因例外而失败。 我已经将 ThreadPoolExecutor 分组并且我已经覆盖了 afterExecute 方法,该方法应该提供运行任务时遇到的任何未捕获的异常。但是,我似乎无法使其发挥作用。 例如: public class ThreadPoo ..

具有持久工作者实例的线程池

我试图排队线程池中的任务,一旦工人变得免费,我已经找到了各种例子,但是在所有情况下,这些例子都已经设置为每个人都使用一个新的Worker实例工作,我想要持久的工作。 我试图做一个ftp备份工具,我有它的工作,但由于单个连接的限制,它很慢。我最想做的事情是建立一个单一的连接来扫描目录并建立一个文件列表,然后由四名工作人员来下载这些文件。 这是一个我的FTP的例子worker: p ..
发布时间:2018-04-13 14:17:05 Java开发