-
0 votes2 answers473 views
Executor Service中的依赖线程 - Java
我在我的程序中处理多个线程 . 有一些独立的线程,一些线程在开始执行之前依赖于其他线程的完成 . 目前我正在这样做 for ( final String inElementId : inElements ) { Thread thread = threadsMap.get( inElementId ); if ( ( thread != null ) && thr... -
3 votes1 answers955 views
在ExecutorService的newFixedThreadPool()中处理队列?
根据this explanation given in Javadocs,它说下面的内容 public static ExecutorService newFixedThreadPool(int nThreads) 创建一个线程池,该线程池重用在共享的无界队列中运行的固定数量的线程 . 在任何时候,最多nThreads线程将是活动的处理任务 . 如果在所有线程都处于活动状态时提交了其他任务,则它... -
182 votes11 answers296 views
处理Java ExecutorService任务中的异常
我'm trying to use Java' s ThreadPoolExecutor 类用固定数量的线程运行大量重量级任务 . 每个任务都有许多地方,在这些地方可能因异常而失败 . 我已经子类化 ThreadPoolExecutor 并且我已经覆盖了 afterExecute 方法,该方法应该提供运行任务时遇到的任何未捕获的异常 . 但是,我似乎无法使其发挥作用 . 例如: public c... -
43 votes6 answers264 views
使用LinkedBlockingQueue的ExecutorService与ThreadPoolExecutor
我正在开发一个多线程项目,我需要生成多个线程来测量我的客户端代码的端到端性能,因为我正在进行负载和性能测试 . 所以我创建了以下使用 ExecutorService 的代码 . 以下是 ExecutorService 的代码: public class MultithreadingExample { public static void main(String[] args) throw... -
1 votes1 answers427 views
为什么ThreadPoolExecutor $ Worker扩展了AbstractQueuedSynchronizer
我知道有关AbstractQueuedSynchronizer的一些细节 . 它是一个用于创建状态依赖类或同步器的框架 . 但是我没有在ThreadPoolExecutor的Worker中扩展这个类 . private final class Worker extends AbstractQueuedSynchronizer implements Runnable 正如 Worker 类的签名所... -
1 votes2 answers473 views
ExecutorService按顺序执行runnable
我正在使用带有newSingleThreadExecutor的 Actuator 服务来按顺序执行我的Runnable任务,但似乎不能保证串行执行顺序,因为某些时候任务是以随机顺序执行的 . executorService = Executors.newSingleThreadExecutor(); executorService.submit(MyTask1); executorService... -
0 votes2 answers1127 views
查询Java Future和RejectionHandler
我对 Future 的使用有一些疑问 . 在解决我的问题之前,请通过以下示例 . http://javarevisited.blogspot.in/2015/01/how-to-use-future-and-futuretask-in-Java.html 使用线程池& Executors 的主要目的是异步执行任务而不阻塞主线程 . 但是一旦你使用 Future ,就会阻塞调用线程 . 我们是否... -
12 votes9 answers1342 views
执行程序:如果递归创建任务,如何同步等待所有任务完成?
我的问题与this one here密切相关 . 正如在那里发布的那样,我希望主线程等到工作队列为空并且所有任务都已完成 . 然而,在我的情况下,问题是每个任务可以递归地导致提交新任务以进行处理 . 这使收集所有这些任务的未来变得有点尴尬 . 我们当前的解决方案使用忙等待循环来等待终止: do { //Wait until we are done the processing try ... -
2 votes2 answers1917 views
使用ThreadPoolExecutor的同步任务 生产环境 者/使用者
我想在以下场景中找到一种使用 ThreadPoolExecutor 的方法: 我有一个单独的线程在线程池上生成和提交任务 任务提交是同步的,并将阻止,直到 ThreadPoolExecutor 可以启动任务 在任何给定时间,只能执行固定数量的任务并行执行 . 同时运行的无限数量的任务可能导致内存耗尽 .在提交任务之前 , 生产环境 者线程始终检查自第一个提交的任务以来未超过某个最大... -
1 votes1 answers474 views
如果maximumPoolSize小于corePoolSize怎么办? Java 6中可能存在的错误?
我遇到了Java 6的ThreadPoolExecutor一个奇怪的问题 . 我不时地动态更改了corePoolSize,我观察到线程池没有处理应该完成的任务 . 例如,如果我有4个corePoolSize并且队列中有许多任务等待,那么执行程序最多处理3个,有时甚至是2个 . 在调查问题的时候,我注意到当我增加或减少corePoolSize时我从未改变过maxPoolSize . 从我的申请开始,... -
1 votes1 answers757 views
具有强制排队的ThreadPoolExecutor
传统的ThreadPoolExecutor仅在没有可用于传入任务的空闲核心线程时才使用提供的BlockingQueue对项目进行排队 . 如果存在空闲的核心线程,则执行程序会尝试直接为传入的任务分配线程 . 我想要一个稍微不同的行为 . 我希望将所有任务强制提交给BlockingQueue和executor服务,以仅从队列中轮询任务 . 我将拥有自己的BlockingQueue实现,它将基于检查提... -
0 votes1 answers1885 views
并行优化pyomo-gurobi
我对Pyomo和优化都很新 . 我试图解决一个迭代的局部搜索算法,我必须多次解决“相对较小”的优化问题 . 目前,我已经实现了一个循环,每次,我制定优化问题并用Gurobi解决它 . 但是,我想知道是否有一种“并行化”的方式来解决这个问题,因为本地搜索的结果并没有相互影响 . 我查看了ThreadPoolExecutor和ProcessPoolExecutor . 第一个没有提高速度,而第二个给我...