在Python中如何使用多处理或多线程?

在Python中如何使用多处理或多线程?,python,Python,我最近参与了一个用python编写的项目。所有文件都会一个接一个地进行连续分析,因此需要大约1小时才能完成。我的任务是减少这一时间 我不确定在python中应该使用什么:多线程还是多进程来并行运行文件分析 请建议 谢谢。也许这就是你要找的。 您是否还需要对这两种差异进行简要描述 简而言之,如果您的一个子问题必须等待另一个子问题完成,多线程是好的(例如,I/O繁重的操作);相比之下,如果子问题真的可能同时发生,则建议多处理。但是,创建的进程数不会超过核心数。 这在很大程度上取决于分析的类型。下

我最近参与了一个用python编写的项目。所有文件都会一个接一个地进行连续分析,因此需要大约1小时才能完成。我的任务是减少这一时间

我不确定在python中应该使用什么:多线程还是多进程来并行运行文件分析

请建议


谢谢。

也许这就是你要找的。

您是否还需要对这两种差异进行简要描述

简而言之,如果您的一个子问题必须等待另一个子问题完成,多线程是好的(例如,I/O繁重的操作);相比之下,如果子问题真的可能同时发生,则建议多处理。但是,创建的进程数不会超过核心数。
这在很大程度上取决于分析的类型。下面是一条简单的经验法则,可以给出提示:

  • 如果进程是内存绑定的,请保持其串行
  • 如果是io绑定的,则使用多线程-最佳线程数取决于io等待时间的百分比
  • 如果是cpu受限的,则使用与可用内核数量相等的多处理或进程

如果你不能确定一个先验,那就做实验吧。。。但千万不要忘记,在所有可能的用例中,没有一种方法绝对比其他方法更好

正在执行哪种类型的分析?另外,您是否希望并行处理多个文件,或者并行处理每个文件的多个部分。我正在尝试并行运行多个文件,以便缩短完成时间,在对Google进行了一些研究后,我知道我应该使用python中的“popen”来完成这项工作。我试图通过运行一些示例来掌握这方面的知识。:)谢谢你的链接,很好。