executorservice相关内容

ExecutorService 超出范围时是否会被垃圾收集?

我问这个问题是因为我正在创建很多执行程序服务,虽然我可能已经在某个需要调查的地方存在内存泄漏,但我认为最近对以下代码的更改实际上使情况恶化了,因此我试图确认发生了什么: @FunctionalInterface公共接口 BaseConsumer 扩展了 Consumer;{@覆盖默认无效接受(最终路径路径){字符串名称 = path.getFileName().toString();Execut ..

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

我正在使用 DynamoDB SDK for Java 在本地 Dynamo DB 中进行批量写入(大约 5.5k 项)的 POC.我知道每个批量写入不能超过 25 个写入操作,因此我将整个数据集划分为每个 25 个项目的块.然后我将这些块作为 Executor 框架中的可调用操作传递.尽管如此,我还是没有得到令人满意的结果,因为 5.5k 记录在 100 多秒内被插入. 我不确定我还能如何 ..

我可以在单个流程应用程序中运行多少个 AsyncTask

我正在使用 asyncTasks 来加载带有图像的列表元素(只是按照 android 的高效加载位图教程) 在 DDMS 中,我最多可以看到 5 个 AsyncTask 正在运行 现在另外我添加了另一个 AsyncTask,它使用 MediaCodec 类执行一些解码. 现在在 DDMS 中,我仍然看到 5 个 AsyncTask,并且我的图像加载 aynctask 或解码异步任 ..

Java 从 ExecutorService 设置回调

我有一个 fixedThreadPool,我用它来运行一堆工作线程来实现具有多个组件的任务的并行执行. 当所有线程都完成后,我使用方法 (getResult) 检索它们的结果(非常大)并将它们写入文件. 最终,为了节省内存并能够看到中间结果,我希望每个线程在完成执行后立即将其结果写入文件,然后释放其内存. 通常,我会在 run() 方法的末尾添加实现该效果的代码.但是,此类中的某 ..
发布时间:2022-01-03 08:22:55 Java开发

如何在 FutureTask 中捕获异常

在发现 FutureTask 在 Java 1.6(和来自 Eclipse)上的 Executors.newCachedThreadPool() 中运行后吞下了 Runnable.run() 方法,我试图想出一种方法来捕获这些,而无需将 throw/catch 添加到我所有的 Runnable 实现中. API 建议重写 FutureTask.setException() 应该有助于此: ..
发布时间:2021-12-28 22:58:45 Java开发

Java ExecutorService 暂停/恢复特定线程

有没有办法使用 ExecutorService 来暂停/恢复特定线程? 私有静态ExecutorService线程池=Executors.newFixedThreadPool(5); 想象一下,我想停止 id=0 的线程(假设为每个线程分配一个增量 id,直到达到线程池的大小). 过了一会儿,假设按下一个按钮,我想恢复该特定线程,并让所有其他线程保持当前状态,可以暂停或恢复. 我在 ..

从在 ScheduledExecutorService 中运行的任务本身中停止周期性任务

在 ScheduledExecutorService 中运行时,是否有一种很好的方法可以阻止任务本身的重复任务? 比方说,我有以下任务: 未来f = scheduleExecutor.scheduleAtFixedRate(new Runnable() {整数计数 = 0;公共无效运行(){System.out.println(count++);如果(计数== 10){//???取消自我} ..

如何在 Java 中暂停/恢复 ExecutorService 中的所有线程?

我向 Java 中的 executorservice 提交了一堆作业,但我想暂时暂停所有这些作业.做到这一点的最佳方法是什么?我怎样才能恢复?还是我这样做完全错误?我是否应该遵循一些其他模式来实现我想要实现的目标(即暂停/恢复执行服务的能力)? 解决方案 为了回答我自己的问题,我在ThreadPoolExecutor的javadocs中找到了一个PausableThreadPoolExec ..

使用 ExecutorService 控制任务执行顺序

我有一个将异步任务委托给线程池的进程.我需要确保某些任务按顺序执行.所以例如 任务按顺序到达 任务 a1、b1、c1、d1、e1、a2、a3、b2、f1 任务可以按任何顺序执行,除非存在自然依赖性,因此 a1,a2,a3 必须按该顺序处理,方法是分配给同一线程或阻塞这些线程,直到我知道前一个 a# 任务已完成. 目前它不使用 Java Concurrency 包,但我正在考 ..
发布时间:2021-12-28 22:48:32 Java开发

ExecutorCompletionService?如果我们有 invokeAll 为什么需要一个?

如果我们使用 ExecutorCompletionService,我们可以提交一个一系列任务作为 Callable 并获得与 CompletionService 交互的结果作为 queue. 但是还有ExecutorService的invokeAll,它接受一个Collection的任务,我们得到一个Future检索结果. 据我所知,使用一个或另一个没有任何好处(除了我们使用 invo ..

ExecutorService 的未来任务没有真正取消

我将我的期货从 ExecutorService 推送到哈希映射中.稍后,我可能会从哈希映射中调用 Futures 上的取消.虽然结果是真的,但我后来在 Callable 过程中遇到了断点,就好像 Future cancel() 没有效果一样.我认为这可能是这里有两个不同引用的情况(即使在断点时引用 ID 被列为相同),但想知道是否有专家可以插话.代码如下所示: ExecutorService t ..
发布时间:2021-12-28 22:44:57 Java开发

Java:ExecutorService 在特定队列大小后阻止提交

我正在尝试编写一个解决方案,在该解决方案中,单个线程产生可以并行执行的 I/O 密集型任务.每个任务都有重要的内存数据.所以我希望能够限制当前待处理的任务数量. 如果我像这样创建 ThreadPoolExecutor: ThreadPoolExecutor executor = new ThreadPoolExecutor(numWorkerThreads, numWorkerThrea ..
发布时间:2021-12-28 22:43:02 Java开发

Java ExecutorService:awaitTermination 所有递归创建的任务

我使用 ExecutorService 来执行任务.这个任务可以递归地创建提交给同一个 ExecutorService 的其他任务,这些子任务也可以这样做. 我现在有一个问题,我想等到所有任务都完成(即所有任务都完成并且他们没有提交新任务)再继续. 我无法在主线程中调用 ExecutorService.shutdown(),因为这会阻止 ExecutorService 接受新任务. ..
发布时间:2021-12-28 22:39:15 Java开发

Java 的 Fork/Join 与 ExecutorService - 何时使用哪个?

我刚刚读完这篇文章:Java-5 ThreadPoolExecutor 相对于 Java-7 ForkJoinPool 的优势是什么? 并且觉得答案不够直接. 您能否用简单的语言和示例解释一下 Java 7 的 Fork-Join 框架与旧解决方案之间的权衡? 我还阅读了 Google 关于该主题的排名第一的文章 Java 提示:何时使用 ForkJoinPool 与 Executor ..
发布时间:2021-12-28 22:33:39 Java开发