executorservice相关内容

ExecutorService的shutdown()不会等到所有线程都完成

我有一个代码,其中4个线程同时运行。我想等待,直到所有这4个线程将完成。 我尝试了两种方法: Thread#join() ,这种方法正常工作。 join()后的代码只有在所有主题完成后才会执行。 ExecutorService#shutdown() ,这种技术允许执行 shutdown()之后的代码,即使并非所有线程都完成。 li> 程式码范例: ExecutorSer ..

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

我将ExecutorService中的Futures推入哈希映射。稍后,我可以在哈希映射中调用Futures上的cancel。尽管结果是真的,我后来在Callable过程中打断点,好像Future cancel()没有效果。我认为这可能是一个两个不同的引用在这里(即使引用ID列出为相同的断点时),但是想知道是否一些专家可以chime in。这里的代码看起来像: ExecutorServic ..
发布时间:2016-12-26 15:35:53 Java开发

如何捕获FutureTask中的异常

在Java 1.6(和Eclipse)上发现 FutureTask 在 Executors.newCachedThreadPool()中运行swallows在 Runnable.run()方法中的异常,我试图想出一个方法来捕获这些没有添加throw / catch到我所有的 Runnable 实现。 API建议覆盖 FutureTask.setException()在此: 导致此未来以 ..
发布时间:2016-12-26 15:34:05 Java开发

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

我提交了一堆工作给Java的执行者服务,我不知何故想暂时停止所有这些工作。什么是最好的方法做到这一点?如何恢复?还是我做这个完全错了?我应该按照一些其他模式来实现我想达到的目的(即能否暂停/恢复执行服务)? 解决方案 我自己的问题,我发现了一个 PausableThreadPoolExecutor 在 ThreadPoolExecutor 本身。这是我的版本使用Guava的监视器: ..

Java执行器:等待任务终止。

我需要提交一些任务,然后等待他们,直到所有结果可用。每个向向量(默认情况下同步)添加 String 。然后我需要为Vector中的每个结果启动一个新任务,但是只有当所有先前的任务停止执行他们的工作时,我才需要这样做。 我想使用Java Executor,特别是我尝试使用 Executors.newFixedThreadPool(100)固定数量的线程(我有一个可变数量的任务可以是10或500 ..
发布时间:2016-12-26 15:21:01 Java开发

使用ExecutorService控制任务执行顺序

我有一个进程将异步任务委托给线程池。我需要确保某些任务按顺序执行。 例如 任务按顺序到达 任务a1,b1,c1,d1, e1,a2,a3,b2,f1 任务可以以任何顺序执行,除非有自然依赖性,所以a1,a2,a3必须在 目前它不使用Java并发软件包,但我' 有没有人有类似的解决方案或建议如何实现这 解决方案 当我这样做过去,我通常有一个组件,然后提交cal ..
发布时间:2016-12-26 15:19:24 Java开发

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

如果我们使用 ExecutorCompletionService ,我们可以提交系列任务作为 Callable s并获得结果与 CompletionService 交互作为队列。 但也有 ExecutorService 的 invokeAll 接受一个 Collection 的任务,我们得到一个 Future 的列表来检索结果。 据我所知,使用一个或另一个没有好处(除了我们避免 for ..

使用ExecutorService有什么优点?

使用 ExecutorService 超过运行线程将 Runnable 传递到线程构造函数? 解决方案 ExecutorService 消除了与较低级别抽象相关的许多复杂性,例如raw Thread 。它提供了在成功或突然终止任务时安全启动,关闭,提交,执行和阻止的机制(表示为 Runnable 或 Callable )。 从 JCiP ,第6.2节,直接从马的嘴: 执行者可能 ..
发布时间:2016-12-26 14:38:09 Java开发

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

我试图编写一个解决方案,其中单个线程生成可以并行执行的I / O密集型任务。每个任务都有重要的内存数据。所以我想能够限制暂时挂起的任务数量。 如果我像这样创建ThreadPoolExecutor: ThreadPoolExecutor executor = new ThreadPoolExecutor(numWorkerThreads,numWorkerThreads, 0L,Ti ..
发布时间:2016-12-26 14:32:54 Java开发

Java newCachedThreadPool()与newFixedThreadPool

newCachedThreadPool()与 newFixedThreadPool(...) $ b b 我应该在什么时候使用其中一种?哪种策略在资源利用方面更好? 解决方案 我认为文档解释这两个函数的区别和用法: newFixedThreadPool 创建一个重用 的线程池固定数量的线程操作 a共享无界队列。在任何 点,至多nThreads线程将 是活动的处理任务 ..

超时后中断任务的ExecutorService

我在寻找 ExecutorService 实现,可以提供超时。如果提交到ExecutorService的任务花费的时间超过运行超时,则会中断这些任务。实现这样的野兽不是这么艰巨的任务,但我想知道是否有人知道现有的实现。 这里是我想出了基于一些下面的讨论。任何评论? import java.util.List; import java.util.concurrent。*; ..
发布时间:2016-12-26 14:11:45 Java开发

Java从ExecutorService设置回调

我有一个fixedThreadPool,我使用它运行一堆工作线程来实现一个任务与许多组件的并行执行。 当所有线程都完成后,我使用一个方法(getResult)检索他们的结果(这是相当大的),并将它们写入一个文件。 最后,为了节省内存并能够看到中间结果,我希望每个线程一结束执行就将其结果写入文件,然后释放它的内存。 通常,我会添加代码到run()方法的结尾。但是,此类中的某些其他对 ..
发布时间:2016-11-10 11:04:28 Java开发