151得票6回答
如何从线程池中获取线程ID?

我有一个固定大小的线程池来提交任务(限制为5个线程)。如何找出这5个线程中哪一个执行了我的任务(类似于"第3个线程中的5个正在执行此任务")?ExecutorService taskExecutor = Executors.newFixedThreadPool(5); //in infini...

35得票6回答
Java执行器带有限流/吞吐量控制

我正在寻找一个Java Executor,它能够指定限制节流/吞吐量/速率控制,例如,在一秒钟内最多只能处理100个任务--如果提交更多的任务,则它们应该被排队并在以后执行。主要目的是避免在访问外部API或服务器时达到限制。 我想知道是否基于Java本身(我怀疑,因为我已经检查过了),或者其...

18得票2回答
如何避免 Spark 执行器因内存限制被 YARN 容器杀死?

我有以下的代码,其中大部分时间都会触发 hiveContext.sql()。我的任务是在处理完所有hive表分区后,创建几个表并向其中插入值。 因此,我首先执行 show partitions 并使用其输出结果在for循环中调用一些方法,这些方法会创建表(如果不存在)并使用 hiveCont...

12得票1回答
在超时后终止countDownLatch.await()方法的执行。

我正在使用ExecutorService实现一个3线程池,并使用CountDownLatch监控所有线程的完成情况,以便进行后续处理。 ExecutorService threadExecutor = Executors.newFixedThreadPool(3); CountDownLat...

10得票7回答
Java并发:用少量线程执行许多“无限”任务

我正在构建一个(并发)模拟器,用于一组N个粒子根据牛顿定律在空间中移动。我的想法是将每个粒子建模为一个任务,该任务与其他粒子(任务)交互,以获取它们的位置和质量,以计算其所受的净力。每个粒子任务都是这样的:while(true){ force = thisParticle.calcula...

10得票3回答
如何取消ScheduledThreadPoolExecutor中的待处理项?

我有一个任务需要安排任务并在某个事件发生时将其删除。我正在使用ScheduledThreadPoolExecutor来安排这些任务,这很简单。但是,我发现了两种取消待处理项的方法,它们看起来有些奇怪。 我想知道它们中的任何一个是否具有生产质量。如果它们都不是,那么你有什么建议? 这是我所做...

9得票2回答
ScheduledExecutorService,如何在不停止执行器的情况下停止操作?

我有这段代码: ScheduledExecutorService scheduledExecutor; ..... ScheduledFuture<?> result = scheduledExecutor.scheduleWithFixedDelay( new Some...

8得票1回答
在C++背景下,执行者模式是什么?

asio的作者Christopher Kohlhoff正在为C++编写执行器库和提案。他迄今为止的工作包括这个repo和文档。不幸的是,解释部分尚未编写。到目前为止,文档提供了一些库功能的示例,但我觉得我没有错过什么。这似乎比一系列花哨的调用函数更重要。 我在Google上找到的所有内容都非...

8得票2回答
Spark执行器在join和reduceByKey时内存不足。

在Spark2.0中,我有两个数据框,需要先将它们连接起来,然后使用reduceByKey来聚合数据。但是执行程序时总是遇到OOM错误。提前感谢您的帮助。 数据 d1 (1G,5亿行,已缓存,按col id2分区) id1 id2 1 1 1 3 1 4 2 0 2 ...

8得票3回答
Spark - 我的Spark作业分配了多少个执行器和核心数

Spark架构完全围绕执行器和核心的概念展开。我希望实际上能看到在一个集群中运行我的Spark应用程序有多少个执行器和核心。 我尝试在我的应用程序中使用以下代码片段,但没有成功。 val conf = new SparkConf().setAppName("ExecutorTestJob")...