python - 运行多个python脚本和多处理有什么区别

标签 python multithreading multiprocessing

我正在考虑将多处理添加到我的一个脚本中 提高性能。

没什么特别的,main 方法有 1-2 个参数。

只运行四个克隆的相同脚本有什么问题吗 在终端上与实际将多处理添加到 python 代码中?

例如四核:

~$ script.py & 
   script.py &
   script.py &
   script.py;

我读过 linux/unix 操作系统会自动划分 可用内核中的程序。

抱歉,如果我上面提到的 ^ 内容完全错误。上面什么都没有 正式了解到,都是网上的东西。

最佳答案

我认为 Martijn Pieters 的评论一针见血。如果你的每个进程只消耗少量内存(这样你就可以很容易地让所有四个并行运行而不会耗尽 RAM)并且如果你的进程不需要相互通信,那么最简单的方法是启动所有四个按照您的建议,独立于 shell 进行处理。

如果您有稍微复杂的要求,python multiprocessing 模块非常有用。例如,您可能有一个程序需要在启动时以串行方式运行,然后为计算量更大的部分生成多个副本,最后以串行方式进行一些后处理。 multiprocessing 对于这种同步来说是无价的。

或者,您的程序可能需要大量内存(可能在科学计算中存储大型矩阵,或在网络编程中存储大型数据库)。 multiprocessing 允许您在不同的进程之间共享该对象,这样您就不会在内存中有 n 个数据副本(使用 multiprocessing.Valuemultiprocessing.Array 对象)。

关于python - 运行多个python脚本和多处理有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18586008/

相关文章:

python - Xlwings:避免打开文件

python - 如何替换整个 csv 文件中的特定单词?

python - 如何修改 sns.histplot 中的核密度估计线

c++ - 并非所有线程都收到 condition_variable.notify_all() 的通知

python-2.7 - python-boilerpipe 挂起多处理

C# 模仿 Python 字典语法的方法

ios - 如何确保我的 DispatchQueue 专门在主线程上执行一些代码?

multithreading - C++ 11线程更新MFC应用程序窗口。需要SendMessage(),PostMessage()吗?

python - 如何在异常后干净地停止多进程 python 程序?

python - 在装饰器中运行多处理