7得票3回答
有没有一种方法可以将任务放回执行者队列中?

我有一系列的任务(即Runnable),需要由Executor执行。每个任务都需要满足特定条件才能继续。我想知道是否有办法配置Executor,将任务移到队列末尾,并在条件满足且任务能够执行和完成时尝试再次执行。 因此,行为如下: Thread-1从队列中获取任务并调用run 在run内部...

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

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

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

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

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

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

7得票3回答
通过执行器重复使用Java线程

我对以下内容感到困惑: 在Java程序中使用线程的最简单方法是扩展Thread类并实现runnable接口(或者只是实现runnable)。 要启动线程的执行,我们必须调用Thread的方法start(),它又会调用线程的run()方法。这样线程就开始了。 方法start()(除非我错了)每个...

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

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

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

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

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

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

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

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

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

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