- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个要求,我需要处理一些当前现场表演的任务。这是一个计划任务,每分钟运行一次。
在任何给定的时刻,可以有任意数量的现场表演(尽管数量不能那么大,大约最多 10)。 所有的直播节目需要完成20多个功能。或者说那里有 20 个 worker 类(Class),所有人都在那里工作。
假设第一个功能有 5 个节目,几分钟后节目减少到 2 个,几分钟后节目再次增加到 7 个。
目前我正在做这样的事情,
int totalShowsCount = getCurrentShowsCount();
ExecutorService executor = Executors.newFixedThreadPool(showIds.size());
上述语句每分钟执行一次。
问题陈述
1.) 上面的操作要花多少钱......??。在给定的每一分钟创建 fixedThreadPool。
2.) 我可以做些什么来优化我的解决方案,我应该使用一个固定的线程池,比如 (10),并且可能在任何给定的分钟使用 3、5、6 或任意数量的线程。
Can i create a fixed thread pool at worker level, and maintain it and utilize that.
仅供引用,使用 Java8,如果有更好的方法可用。
最佳答案
How much expensive the above operation be..??. Creating fixedThreadPool at every given minute.
创建线程池是一项相对昂贵的操作,可能需要几毫秒。您不希望每秒执行多次此操作。
一秒钟对于计算机来说是永恒的,如果你有一台 36 核的机器,它可以在这段时间内执行多达 1000 亿条指令。一分钟是非常非常长的时间,如果您每分钟只做一次某事,您甚至可以每分钟重新启动 JVM 并仍然获得合理的吞吐量。
What can i do to optimize my solution, should i use a fixed thread pool, say (10), and maybe 3 or 5 or 6 or any number of threads getting utilized at any given minute.
可能,这取决于你在做什么。无需大多数分析,您就可以肯定地说。注意:如果您正在使用 parallelStream(),如果没有,您应该看看是否可以,您可以使用内置的 ForkJoinPool.commonPool()
而无需创建另一个池。但同样,这取决于您在做什么。
关于java - Executors.newFixedThreadPool() - 这个操作有多昂贵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35837400/
我有创建 N 个线程(例如 50 个线程)的方法。这些创建的线程使用 Executors.newFixedThreadPool(20) 创建新线程。因此,50 * 20 = 1000 或更多可能会在应
我正在尝试诊断使用 WSO2 身份管理时遇到的问题。 package org.wso2.carbon.identity.mgt; import java.util.concurrent.Executo
这可能是一个有点老的问题。我对 Jboss 环境中的 ExecutorService 工作感到困惑。我使用了一些示例代码,其中我使用 ExecutorService 提交任务,一切完成后我关闭执行程序
请帮助我理解 newFixedThreadPool(或缓存)的内部流程 当我们写下面的语句时,ExecutorService e=Executors.newFixedThreadPool(3); e.
我正在努力弄清楚如何集中资源,我开始怀疑我的线程可能是问题所在(不是 100%,但一直在试验)。我想要做的事情的要点是创建一个服务器 channel 池,然后查看线程是否正在使用它们。我已经成功地获得
我要火了 Executors.newFixedThreadPool(100); 在一个主程序中,生产者提供工作的速度比消费者跟上的速度快。有没有办法查看 newFixedThreadPool 使用的底
我使用了 CopyOnWriteArrayList 集合对象,它包含 1000 个 URL。每个 URL 表示一个文件。 我想使用多线程池机制并行下载这些 URL 文件。 尝试使用以下代码:
对于特定操作,应用程序创建两个线程(执行不同的任务),主线程不会等待它。同样,对于某些情况,它也只能是一个线程。 如果我将其移至 Executors.newFixedThreadPool(),会有什么
我有一个服务方法,它需要并行调用三个方法,如下所示,以使 ServiceMethod() 运行得更快。 public void ServiceMethod() { ExecutorServic
我的英语不好。但我需要了解 newfixedthreadpool 的 . enter code here ExecutorService executorService = new FixedThre
我有一个要求,我需要处理一些当前现场表演的任务。这是一个计划任务,每分钟运行一次。 在任何给定的时刻,可以有任意数量的现场表演(尽管数量不能那么大,大约最多 10)。 所有的直播节目需要完成20多个功
我正在创建用户线程并将它们放入大小=5 的固定池中。我希望我的线程在 5 分钟内执行。这些线程在远程服务器上完成了一些数据库操作。但由于网络延迟,某些线程只是停止并等待远程服务器的响应,因此它会导致我
我对生产者-消费者模式的理解是,它可以使用生产者和消费者之间共享的队列来实现。生产者将工作提交到共享队列,消费者检索并处理它。也可以通过生产者直接提交给消费者来实现(Producer线程直接提交给Co
这个问题在这里已经有了答案: What does a "Cannot find symbol" or "Cannot resolve symbol" error mean? (18 个答案) 关闭
我正在使用 ConcurrentLinkedQueue 来存储计算步骤,并使用 Executors.newFixedThreadPool 创建的 ExecutorService 来执行它们。我的问题是
这个问题在这里已经有了答案: Executors.newCachedThreadPool() versus Executors.newFixedThreadPool() (8 个答案) 关闭 7 年
我正在尝试更改报告的执行并以并发方式完成。在“连续模式”下,执行测试需要 30 秒,而在使用并发模式时,我需要 27 秒(考虑到必须连续执行几个步骤,我对结果没意见)。 我仍然不明白的是这一行: Ex
正如它在 javadoc 中所说的那样 The threads in the pool will exist until it is explicitly shutdowned by Executor
我的程序应该在多线程下运行很长时间。我需要能够为线程设置超时,一旦线程终止,我想再次启动它。这是我的代码: @Test public void testB() throws Inter
我想启动很多任务来在 +-42Mio 记录的数据库上运行。我想以 5000 条记录/时间的批处理运行此程序(结果为 850 个任务)。我还想限制 java 开始为我执行此操作的线程数(最多 16 个)
我是一名优秀的程序员,十分优秀!