当前位置: 首页 > 知识库问答 >
问题:

ExecutorService.Submit如何工作

淳于升
2023-03-14
ExecutorService.newFixedThreadPool(2);
for (int i = 0; i <5; i++){
  ExecutorService.submit(new Runner());
}

共有1个答案

芮化
2023-03-14

该服务使用队列来存储传入的可运行对象。一旦线程可以执行工作,服务就使用该线程执行下一个到期的可运行对象。

Runnables不是线程。您的示例将创建组成池的两个线程;然后随着时间的推移,5个Runner对象将被分派到这两个线程中的一个。

这就是一切。

 类似资料:
  • CacheController.Somemethod();但是当submit方法被称为submit方法时,它会创建一个线程和cacheController.somemethod();从不调用测试类。

  • 我正在设法利用这项服务。submit(Runnable r,T result)方法,但找不到或想象不到。任何人都可以通过一个代码示例来解释如何最好地利用这种方法。 提前感谢。

  • 问题内容: 要并行或异步运行某些内容,我可以使用ExecutorService:或CompletableFuture Api :( 假设在两种情况下我都使用相同的Executor) 除了返回类型vs. 之外,还存在其他显着差异。或什么时候使用什么? 如果我将API与默认值一起使用(没有执行程序的方法)有什么区别? 问题答案: 除了返回类型Future与CompletableFuture之外,还存在

  • 问题内容: 我对如何使用动作监听器和实现它们有一个想法,但是我想知道是否有人可以告诉我他们如何监听事件?有某种轮询机制吗? 问题答案: 动作侦听器使用观察者模式注册事件,主事件循环会将它们注册的所有事件通知它们。所以不,这不是轮询(拉)机制,而是相反的(推)回调。这是“不给我们打电话,我们给您打电话”编程的一个例子。因为代码中的所有内容都在单个线程(事件循环)上运行,所以您不必担心不同事件之间的同

  • 问题内容: 我试图了解Collections.binarySearch如何在Java中工作。我不太明白我得到的输出。 此代码的输出为-1。 当按此顺序插入元素时 结果是0。我认为如果找不到该元素,则结果为负数。有人可以澄清我收到的输出吗? 问题答案: 您的数据必须根据给定的比较器进行排序,以使二进制搜索能够按预期工作。(如果不是,则行为是不确定的。) 在进行此调用之前,必须根据指定的比较器(通过方