【发布时间】:2014-08-28 14:40:02
【问题描述】:
所以,我几天前启动了我的世界,并打开了它的开发者控制台,看看它在自我更新时做了什么。我注意到其中一行是这样说的:
Downloading 32 files. (16 threads)
现在,首先想到的是:处理器一次仍然只能做一件事,所有线程所做的只是将它们的每个任务分开并在它们之间分配 CPU 功率,那么目的是什么如果每个线程仍然只在单个处理器上运行,则在多个线程上下载多个文件?
然后,在决定是否应该在 SO 上提出这个问题的过程中,我记得多个内核可以驻留在一个处理器上。例如,我的处理器是四核的。因此,您实际上可以真正同时完成 4 次下载。现在这听起来很有意义。除了有 16 个线程用于下载 minecraft 之外。所以,基本上我的问题是:
在下载过程中增加线程数对速度有帮助吗? (假设是多核处理器,并且线程数小于核心数。)
和
如果将线程数增加到超过内核数,速度还会提高吗? (在我看来,在四核处理器上,4 个线程后的下载速度将达到最大。)
【问题讨论】:
-
可能不会。除非您有多个互联网连接。
标签: java multithreading performance download