What to use Multiprocessing or multi-threading in Python?
本问题已经有最佳答案,请猛点这里访问。
我最近参与了一个用Python编写的项目。所有的文件都会一个接一个地进行连续分析,因此需要大约1个小时才能完成。我的任务是减少这次。
我不确定在python中应该使用什么:多线程或多进程来并行运行文件分析。
请建议。
谢谢您。
这在很大程度上取决于分析的类型。下面是给出提示的简单经验法则:
- 如果进程是内存绑定的,请将其保持串行
- 如果是IO绑定,则使用多线程-最佳线程数取决于IO等待时间的百分比。
- 如果它是CPU绑定的,则使用与可用内核数相等的多个处理。
如果你不能确定一个先验,就做个实验…但千万不要忘记,在所有可能的用例中,没有任何方法比其他方法更好。
也许这就是你要找的。https://nathangrigg.com/2015/04/python-threading-vs-processes
可能的答案
您还需要对这两种差异进行简要描述吗?
简而言之,如果您的一个子问题必须等待另一个完成,多线程是好的(例如,I/O繁重的操作);相反,如果您的子问题确实可能同时发生,建议进行多处理。但是,创建的进程不会超过核心的数量。也许这能更好地解释你