假设一件任务的主要工作是处理网络 IO+读写文件 IO,
使用 python 使用下面三种不同的多任务并行处理方案:
- 使用 threading 实现 30 个线程:
threadingNum=30 - 使用 mulitprocess 实现 3 个的进程,每个进程实现 10 个线程:
processing=3, threadingNum=10 - 使用 threading 实现 10 个线程,并手动在主机开三个进程:
threadingNum=10, executionNum=3
问题来了:
- 基于以上情形,那种方案效率会更高?
- 如何去分析这几种情况的执行效率快或者慢的原因?
- 或者说以上三种方案根本没有比较的意义?
- 在使用 python 处理大量 IO 操作时,各位老哥一般都使用什么解决方案呢?(不限于标准和第三方库和其他灵活的处理方案)
(另外补充一下,我特别喜欢这个社区,觉得 V 社的老哥们都是真心在讨论问题和思考问题,每次在这里讨论问题都可以学到很多东西。如果我问问题方式有不恰当的地方和提问频率较高影响到大家的话,希望大家不吝指出!)