使用 Intel Core Duo CPU 来加速自定义应用程序中从 Amazon S3 下载批量数据时,我可以运行多少个线程?

使用 Intel Core Duo CPU 来加速自定义应用程序中从 Amazon S3 下载批量数据时,我可以运行多少个线程?

我如何才能知道我可以使用的最大线程数?我是编程新手,所以我想弄清楚我需要知道什么。我有 950 GB 的文件要从 Amazon S3 下载。我在想我可以使用两个线程,每个线程下载一半的文件,并行运行。

我希望通过多线程处理我的应用程序来加快从 Amazon S3 下载批量数据的速度,但最好首先知道我的计算机是否支持多线程。

计算机规格:

该处理器非常老旧,已停产,因此不支持英特尔超线程。我不确定它是否支持多线程。但如果它可以支持多线程,它可以支持多少个线程,如果我使用太多线程,会对性能产生影响吗?

如果我错了,请纠正我,但我读过非超线程核心只能支持 1 个线程,所以我想我的处理器也许可以支持最多 2 个线程,那么之后的任何线程的影响都会忽略不计。

答案1

您的问题中有几个错误的假设,所以让我在这里澄清一下:

  1. 即使在单核 CPU 上也可以实现多线程。执行只是在时间上分割,因此在任何给定时刻都有 1 个活动线程,但总体线程执行是并行的。
  2. 多线程并不等同于加速。如果设计不当,多线程应用程序总是比单线程应用程序慢几十倍甚至几百倍。
  3. 99%的外网下载都不依赖多线程。可能值得一看的是多范围 HTTP 下载,就像在拨号调制解调器时代的 NetAnts、ReGet 等应用程序中实现的那样。但是,由于各种网络策略和所涉及的服务器,无法保证多范围下载会比常规下载更快。

所以,总而言之。你肯定要收集应用中的指标:最慢的操作是什么?然后重新设计它以获得更快的速度。

答案2

我如何才能知道我可以使用的最大线程数?

Intel Core Duo 拥有 2 个线程,因为它拥有 2 个核心单线程处理器。每个核心都具有单线程能力。

但是如果它可以支持多线程,那么它能支持多少个线程,如果我使用太多线程会不会对性能产生影响?

它支持2个线程。

所以我在想也许我的处理器可以支持最多 2 个线程,那么此后的任何线程的影响都会忽略不计。

它无法处理超过 2 个线程。由于硬件原因,您只能生成 2 个线程,因此您的多线程应用程序将只有两个线程。

相关内容