Multithreading 程序上的多线程处理,只扫描新文件并下载,而不上传到其他地方

Multithreading 程序上的多线程处理,只扫描新文件并下载,而不上传到其他地方,multithreading,performance,concurrency,operating-system,Multithreading,Performance,Concurrency,Operating System,例如,我有一台单核机器。我的程序需要扫描一个网站,并寻找新的文件。每当它发现一个新文件,它就会下载该文件并上传到其他地方 现在我有两个选择来实施我的计划: 选项1:创建一个用于扫描网站的线程。此线程将计划每秒运行一次。每当它发现一个新文件时,就会产生一个新的线程来下载并上传该文件。(例如,如果扫描5个新文件,将产生5个线程+1个原始扫描线程) 选项2:只需创建两个线程,一个用于扫描,另一个用于下载和上传。其他文件将放入队列 哪个选项更有意义?在我看来,我认为选项2更有意义,因为online 1线

例如,我有一台单核机器。我的程序需要扫描一个网站,并寻找新的文件。每当它发现一个新文件,它就会下载该文件并上传到其他地方

现在我有两个选择来实施我的计划:

选项1:创建一个用于扫描网站的线程。此线程将计划每秒运行一次。每当它发现一个新文件时,就会产生一个新的线程来下载并上传该文件。(例如,如果扫描5个新文件,将产生5个线程+1个原始扫描线程)

选项2:只需创建两个线程,一个用于扫描,另一个用于下载和上传。其他文件将放入队列


哪个选项更有意义?在我看来,我认为选项2更有意义,因为online 1线程有时可以使用文件和internet i/o,一堆线程只会使上下文切换频繁发生并产生开销。我说得对吗?

喂?有人能帮我吗?如果不指定要使用的操作系统、程序语言和库,就不可能决定哪种方法是最好的。(例如,许多语言提供“任务”和类似的机制,这比低级线程更便于编程)。此外,对于大多数性能问题,只有测试才能给出答案。