jjzjj

parallel_executor

全部标签

java - 生产者消费者——使用Executors.newFixedThreadPool

我对生产者-消费者模式的理解是,它可以使用生产者和消费者之间共享的队列来实现。生产者将工作提交到共享队列,消费者检索并处理它。也可以通过生产者直接提交给消费者来实现(Producer线程直接提交给Consumer的executor服务)。现在,我一直在研究提供线程池一些常见实现的Executors类。根据规范,newFixedThreadPool方法“重用固定数量的线程,这些线程在共享的无界队列中运行”。他们在这里谈论哪个队列?如果Producer直接提交任务给consumer,ExecutorService的内部队列是否包含Runnables列表?或者它是中间队列,以防生产者提交到共

Java Parallel Streams 关闭线程

我已经编写了一个使用Java流的方法,它简单地遍历对象列表并在满足特定条件时返回true/falseJava方法:booleanmethod(SampleObjsampleObj){ListtestList=invokeSomeMethod();intresult=testList.parallelStream().filter(listObj->(listObj.getAttr()=1)).count(listObj->listObj.isAttr4());return(result>10);}我也为此编写了一个Mock测试用例。当我执行测试用例时,测试成功,但是我收到项目自定义错误

java - Executor 代替 ExecutorService 有没有什么场景。 Executor 接口(interface)背后的意图?

我想知道是否有任何理由使用Executor而不是ExecutorService。据我所知,JDK中没有实现Executor接口(interface),它也不是ExecutorService,这意味着您必须关闭该服务,以便没有内存泄漏。您无法关闭Executor,但可以使用ExecutorService来关闭它。那么,有没有什么场景可以使用类似的东西:privatefinalExecutor_executor=Executors.newCachedThreadPool();Executor接口(interface)背后的意图是什么?示例表示赞赏。 最佳答案

java - StreamEx.parallel().forEach() 在 .map() 之后不并行运行

我注意到,如果我使用StreamEx库通过自定义ForkJoinPool并行处理我的流,如下所示-后续操作会在该池的并行线程中运行。但是,如果我添加一个map()操作并并行生成流-仅使用池中的一个线程。下面是演示此问题的最小工作示例的完整代码(没有所有导入)。executeAsParallelFromList()和executeAsParallelAfterMap()方法之间的唯一区别是在.parallel()之前添加了.map(...)调用。importone.util.streamex.StreamEx;publicclassParallelExample{privatestati

java - 使用 java.util.concurrent.Executor 阻止 tomcat 停止

背景:我需要使用java.util.concurrent.Executor来序列化WebService中一些遗留代码的执行。我在WebService类中添加了一个成员变量executor。它由springframework从外部注入(inject)。执行器bean定义如下:Tomcat版本:6.0.22Java版本:1.6Spring框架:2.5.5问题:WS按预期工作。我们将它推出到Linux服务器上。然后我们意识到tomcat停止脚本不能再停止服务。我对tomcat实例使用kill-3。在线程转储中,我找到了这些行:"pool-2-thread-1"prio=10tid=0xad6

java - java中的Executor服务-->如何将单线程代码转换为使用executor

如果这个问题听起来很愚蠢,请原谅我——我才刚刚开始使用Executor。我有一个以这种方式使用线程的现有Java应用程序——基本上使用独立线程——privateThreadspawnThread(){Threadt=newThread(){StringtaskSnap=task.toString();publicvoidrun(){try{println(task.run(null));}catch(InterruptedExceptione){println("ITC-"+taskSnap+"interrupted");}}};returnt;}从上面可以看出,该函数返回一个新线程。

java - 生命游戏 : how to have "entities" to evolve in parallel?

好吧,标题不清楚,这就是我的意思。我正在编写某种游戏(比如生命游戏)。例如,有动物(每个动物都是一个类的Java实例)。所有这些动物都在map上,所有这个“世界”在每个“回合”进化。这些动物可以在每个回合进行操作。示例:一只狼杀死了一只羊。但是,我对在状态之间进行这些进化的“方式”有疑问,因为结果将取决于我循环遍历动物的顺序。示例:Wolffirst:狼先杀了羊(然后羊死了,所以没有Action)Sheepfirst:羊吃了一些草,然后然后(轮到狼)狼杀死了羊我该如何解决这个问题?多线程?(但我会有很多动物,比如1000只甚至更多……)。是否有一种算法,一种“方式”来做到这一点?谢谢

java - eclipse RCP : Parallel jobs presented in one progress dialog?

我想显示多个Jobs的进度并行运行,但只在一个进度对话框中。但每次调用Job.setUser()似乎都会产生一个新的进度对话框。我试过:为所有作业设置一个共同的进度组(通过IJobManager.createProgressGroup()获得)。让一个父作业调用setUser()并加入所有并行作业所属的作业族。(这会导致一条消息,表明后台任务阻止了父作业的进度。)我可以遵循什么模式来使所有并行作业出现在一个进度对话框中? 最佳答案 您是否尝试过使用org.eclipse.ui.progress.UIJob.查看此链接http://w

java - Java 应用服务器中的 CompletableFuture/parallel Stream

鉴于新的Java8,我们获得了非常好的异步任务特性,例如CompletableFuture和.paralellStream()。如果您按照我的理解在JavaSE中运行它,您将使用ForkJoinPool,但是如果我在例如Wildfly还是TomcatEE?//HereIstartacomp.FuturewithoutgivinganExecutortest=CompletableFuture.supplyAsync(()->timeConsumingMethod());//HereIstartaparallelstreammList.paralell().filter(...).col

java - 如何确定ThreadPoolTask​​Executor池和队列大小?

关于如何确定线程池大小,这可能是一个更笼统的问题,但是在这种情况下,让我们使用SpringThreadPoolTaskExecutor。对于池核心,最大大小和队列容量,我具有以下配置。我已经了解了所有这些配置的含义-here是一个很好的答案。@SpringBootApplication@EnableAsyncpublicclassMySpringBootApp{publicstaticvoidmain(String[]args){ApplicationContextctx=SpringApplication.run(MySpringBootApp.class,args);}@Beanp