在Python中使用多处理或多线程的用法是什么?

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繁重的操作);相反,如果您的子问题确实可能同时发生,建议进行多处理。但是,创建的进程不会超过核心的数量。也许这能更好地解释你