我有一些看起来像这样的代码:
for item in list:
<bunch of slow python code, depending only on item>
我想通过并行化循环来加快速度。通常,该multiprocessing
模块非常适合此问题(请参阅此问题的答案),但它是在 python 2.6 中添加的,我坚持使用 2.4。
在 python 2.4 中并行化 python 循环的最佳方法是什么?
我有一些看起来像这样的代码:
for item in list:
<bunch of slow python code, depending only on item>
我想通过并行化循环来加快速度。通常,该multiprocessing
模块非常适合此问题(请参阅此问题的答案),但它是在 python 2.6 中添加的,我坚持使用 2.4。
在 python 2.4 中并行化 python 循环的最佳方法是什么?
您可能正在寻找“叉子”,这将使特定项目的使用变得容易。
不过,您的 for 循环需要看起来有点不同——您希望在 fork 返回零时立即中断。
import os
L = ["a", "b", "c"]
for item in L:
pid = os.fork()
if pid == 0: break
else: print "Forked:", pid
if pid != 0: print "Main Execution, Ends"
else: print "Execution:", item
我不熟悉使用 python 2.4,但是您是否尝试过使用 subprocess.Popen 并只是产生新进程?
from subprocess import Popen
for x in range(n):
processes.append(Popen('python doWork.py',shell = True))
for process in processes:
process.wait()