- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
有什么区别
ExecutorService eService = Executors.newFixedThreadPool(2);
eService.execute(new TestThread6());
eService.execute(new TestThread6());
eService.execute(new TestThread6());
eService.awaitTermination(1, TimeUnit.NANOSECONDS);
eService.shutdown();
和
eService.shutdown();
eService.awaitTermination(1, TimeUnit.NANOSECONDS);
我不太懂shutdown()
。此方法不等待先前提交的任务完成执行。这是否意味着 shutdown()
可以终止已提交但未完成的任务?我尝试了一些例子,他们没有证明这一点,请给我一个例子。
最佳答案
你应该先调用shutdown
。否则,您可能会等待很长时间,因为 awaitTermination
实际上并没有关闭您的执行程序。
如果你想等待任务完成,而不是等待执行器关闭,那么你应该使用invokeAll
。
关于java - shutdown 和 awaitTermination 哪个第一次调用有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18425026/
我正在尝试实现一个函数,其中可调用对象在规定时间内完成或操作超时。我曾希望 ExecutorService.awaitTermination() 能够执行此操作,但惊讶地发现它没有执行此操作。代码如下
我有一组线程,它们都需要并行执行,并且我必须等待所有线程完成。 我应该使用普通的旧Thread还是ExecutorService?对于 ExecutorService.awaitTermination
我在 Java 中使用线程时遇到问题(我在 Java 中使用线程的经验很少,但在 C++ 中使用很多,所以我了解线程的基本概念)。我已经在 Java 中使用了线程的示例代码,接下来是代码:
我多年来一直存在的问题:在此伪代码中, ExecutorService svc = Executors.newFixedThreadPool(3); svc.submit(new Runnable()
我正在尝试用 Java 编写一个流程,它同时执行一系列任务,等待任务完成,然后将整个流程标记为已完成。每个任务都有自己的信息,包括单个任务何时完成。我正在为流程使用 ExecutorService,并
我用 Executors.newFixedThreadPool(2) 创建了一个固定大小的线程池,并执行了 10 个 Runnable 对象。我设置断点并跟踪执行。但是,即使所有任务都已完成,fixe
我有一个 Spark Structured Streaming 作业,它从 Kafka 主题读取偏移量并将其写入 aerospike 数据库。目前,我正在准备此作业生产并实现 SparkListene
根据 Javadocs,shutdown()将等待所有提交任务执行。我有两个问题: 提交的任务是什么意思?任务是否必须通过 ExecutorService.submit() 方法专门提交,或者也包括通
我使用 ExecutorService 来执行任务。此任务可以递归地创建提交给同一个 ExecutorService 的其他任务,并且这些子任务也可以执行此操作。 我现在遇到的问题是我想等到所有任务都
我必须等待 executorService 中的所有线程完成。我应该使用 while(!executor.isTerminated()){...} or executor.awaitTerminati
需要澄清以下行为。 我有一个带有 java.util.concurrent.ExecutorService 的 java 应用程序,如下所示, for (int i = 0; i < t
在我的代码中,我有许多作为管道运行的 executorservices,因为第一个 executorService 可以将任务提交给任何后续的 executor 服务,但绝不会反过来。 servi
如果我有以下代码,它工作正常: ExecutorService service = Executors.newFixedThreadPool(100); [....] List> futures =
有什么区别 ExecutorService eService = Executors.newFixedThreadPool(2); eService.execute(new TestThread6()
我有一个提交给 ExecutorService 的任务列表。 .但是我需要在凌晨 2:30 的最后期限之前关闭 ExecutorService,即使任务没有完成。我怎样才能做到这一点?我检查了API,
我有两个类。一个 POJO 和 main。 POJO类 public class Processor implements Runnable{ private int id; public Proce
我正在尝试提交多个任务并在可用时获取结果。但是,循环结束后,我必须强制所有任务在指定的时间内完成。如果没有,则抛出错误。最初,我所拥有的只是 executorService 的 invokeAll、s
我是 Java 多线程的新手。我有数以千计的计划任务/线程需要执行。我正在使用以下代码: ScheduledExecutorSerivce scheduleService = Executors.ne
请帮助理解 ExecutorService#awaitTermination(timeout) 行为。 我正在观察我的代码中的情况: private void shutdownAndAwaitTerm
我使用 ExecutorService 来执行任务。该任务可以递归地创建提交给同一ExecutorService的其他任务,这些子任务也可以这样做。 我现在有一个问题,我想等到所有任务都完成(即所有任
我是一名优秀的程序员,十分优秀!