我正在考虑将多处理添加到我的一个脚本中 提高性能。
没什么特别的,main 方法有 1-2 个参数。
只运行四个克隆的相同脚本有什么问题吗 在终端上与实际将多处理添加到 python 代码中?
例如四核:
~$ script.py &
script.py &
script.py &
script.py;
我读过 linux/unix 操作系统会自动划分 可用内核中的程序。
抱歉,如果我上面提到的 ^ 内容完全错误。上面什么都没有 正式了解到,都是网上的东西。
最佳答案
我认为 Martijn Pieters 的评论一针见血。如果你的每个进程只消耗少量内存(这样你就可以很容易地让所有四个并行运行而不会耗尽 RAM)并且如果你的进程不需要相互通信,那么最简单的方法是启动所有四个按照您的建议,独立于 shell 进行处理。
如果您有稍微复杂的要求,python multiprocessing
模块非常有用。例如,您可能有一个程序需要在启动时以串行方式运行,然后为计算量更大的部分生成多个副本,最后以串行方式进行一些后处理。 multiprocessing
对于这种同步来说是无价的。
或者,您的程序可能需要大量内存(可能在科学计算中存储大型矩阵,或在网络编程中存储大型数据库)。 multiprocessing
允许您在不同的进程之间共享该对象,这样您就不会在内存中有 n 个数据副本(使用 multiprocessing.Value
和 multiprocessing.Array
对象)。
关于python - 运行多个python脚本和多处理有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18586008/