- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作一个基于经典工作池模型的 Scala 应用服务器。鉴于:
要最大化性能,corePoolSize 的最佳值是多少?理想情况下,当工作线程池的大小等于处理器内核的数量时,性能会最大化。所以在这种情况下,我猜最好的值是 5(1 用于调度程序,另外 4 用于工作人员),或者我可以将值设置为 4 并覆盖调度程序 actor 的调度程序方法,这样它就不会与工作人员共享线程池。
这是正确的吗?任何建议表示赞赏。谢谢!
最佳答案
只是一些提示。
Ideally the performance is maximized when the size of the worker thread pool is equal to the number of processor cores.
不是真的。以下是如何估算可以获得最大吞吐量的线程数:
N = C * U * (1 + W/C)
其中 N = 线程数
,C = CPU 核心数
,U = objective-c PU 利用率
,W/C = Waiting time to Computing time ratio
(等待时间是指IO等)。
但请注意,上述等式仅考虑了 CPU,而 CPU 并不是唯一需要管理的资源。响应时间的调整也有点不同。
陈词滥调的答案是,您必须进行测试才能确定最佳选择。您或许可以使用上述公式作为起点。另请注意,核心池大小 != 最大池大小。
关于multithreading - Scala:corePoolSize 最大化 Actor 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11007103/
javadoc说: When a new task is submitted [...], and fewer than corePoolSize threads are running, a new
这个问题已经有答案了: Dynamic resizing of java.util.concurrent.ThreadPoolExecutor while it has waiting tasks (
我不清楚类 java.util.concurrent.Executors 中 newScheduledThreadPool() 方法的“corePoolSize”参数是什么意思。 如果我输入较高的数值
我已经配置了 Spring ThreadPoolTaskExecutor,考虑到至少有 16 个线程,根据需要最多可达 256 个: 但是正如我从日志中看到的,线
我想要一个 ScheduledThreadPoolExecutor,如果没有工作要做,它也会停止最后一个线程,如果有新任务,它会创建(并让线程保持 Activity 状态一段时间)。但是一旦没有更多的
我正在尝试制作一个基于经典工作池模型的 Scala 应用服务器。鉴于: 机器有一个四核处理器 有一个专门用于阻塞网络 I/O 监听的调度器 actor worker actor 都是非阻塞的。 要最大
我正在学习 Java 并发实践,并在 8.3.1 线程创建和拆卸部分下看到了一条语句。这是声明 - “即使没有要执行的任务,实现也会尝试将池保持在这个大小,并且不会创建比这更多的线程,除非工作队列已满
ExecutorService.newCachedThreadPool() 的定义是 public static ExecutorService newCachedThreadPool(ThreadF
我有一个带有 corePoolSize=1 和 maxPoolSize=1 的 ThreadPoolExecutor,并由无界的 LinkedBlockingQueue 支持。 假设在时间 t,池中的
传递给 ThreadPoolExecutor/ScheduledThreadPoolExecutor 的推荐 corePoolSize 是多少? Runtime.getRuntime().availa
我正在学习 Java 并发实践 并卡在了8.3.1 线程创建和拆卸 主题上。以下脚注警告将 corePoolSize 保持为零。 Developers are sometimes tempted to
我想知道 corePoolSize 和 throttle-limit 之间的区别,作为定义多线程配置的 Spring Batch 属性。 感谢这篇文章 "What is the difference
The documentation表示如果 corePoolSize 小于零,构造函数将抛出 IllegalArgumentException。这表明零是一个有效值,意味着不在池中保留任何空闲线程。这
我一直在研究使用 ThreadPoolExecutor 和 JDK6 进行线程池的不同策略。我有一个优先级队列在工作,但不确定我是否喜欢在 keepAliveTime 之后池没有调整大小的方式(无界队
我必须向网站的所有用户发送大量电子邮件。我想为每封发送的电子邮件使用一个线程池。目前我已将值设置为: 两者之间有什么区别,是否会扩展。目前我有大约。 10000 个用户。 最佳答案 以下是 Sun
我在使用 Java 6 的 ThreadPoolExecutor 时遇到了一个奇怪的问题。当我动态更改 corePoolSize 时,我发现线程池没有处理应有的任务。 例如,如果我有 4 个 core
我在生产中遇到了一个有趣的问题。 我有以下 ScheduledThreadPool 分配代码: ScheduledExecutorService executorService =
给出的是 ScheduledThreadPoolExecutor 的以下配置每五秒运行一个简单的任务: int corePoolSize = 0; ScheduledExecutorService e
我有一个 Spring Boot REST 异步应用程序,想要调整: 来自客户端的连接线程(希望 REST 请求并行) 我的服务层中@Async 方法的线程数 数据库连接池 浏览文档和网站发现了可能性
我是一名优秀的程序员,十分优秀!