最近我一直在观察一个有趣的现象,在我基于它重新设计我的整个软件架构之前,我想知道为什么会发生这种情况,以及是否有可能使线程性能与进程性能相提并论。
通常,任务是下载某些数据。如果我们用 6 个线程创建一个进程,基于 Parallel 库,下载大约需要 10 秒。
但是,如果我们创建 6 个进程,每个进程都是单线程的,并下载相同的数据,那么整个过程只需要大约 6 秒。
这些数字经过彻底验证且具有统计意义,因此请务必将其视为理所当然。
观察结果涵盖了一个大型(100 次试验)数据集,我观察到没有偏离这种行为。
基本上,问题是,为什么非同步多线程进程比具有完全相同工作代码的几个单独进程慢,以及如何修复它?
提前致谢!
注意:我读过类似的问题,但答案并不令人满意和实用。