multithreading - 为什么线程不会增加运行时间超过某个点
问题描述
基本上,我有一个表,其中包含程序中的线程数和程序的运行时间(以秒为单位)
Threads Runtime
1 12.06
2 6.03
3 4.02
4 4.556
5 4.154
10 3.216
15 2.68
20 3.082
25 2.814
50 3.35
我理解为什么拥有线程/并发会大大增加运行时开始,但是,我有点困惑,当我们得到 10-50 个线程时,运行时保持相对稳定并且似乎根本没有增加,尽管线程数量大幅度增加。
为什么是这样?
解决方案
线程代表其父进程的细分。
在您的情况下,我预测您的大多数线程根本无关紧要!
“单线程”案例预测您最坏情况的运行时间。不出所料,“二线”一分为二,“三线”一分为三。“四线及以上”明确表示没有额外的好处。其余人无事可做。
推荐阅读
- sql - 在这个练习中我应该使用什么连接?(自然加入或内部加入,他们给了我相同的答案)
- javascript - 为什么它是一个空白然后是一个循环
- java - 类型类“myclass”的 Servlet cxf 不实现 javax.servlet.Servlet
- python - 无法更改熊猫数据框中的值
- alexa - Alexa 请求的 supportedInterfaces 属性的所有可能值是什么
- forms - Symfony - 使用表单甚至监听器设置数据
- node.js - Node.js 无法将 x-zip-compressed 转换为 application/zip
- c# - 循环依赖:IVisitor 和 Datas
- python - 在以下问题中,我实现了 Jacobi 迭代方法
- java - SOAP Web服务如何更改请求的命名空间