我有一个Python脚本run.py:
def do(i):
# doing something with i, that takes time
start_i = sys.argv[1]
end_i = sys.argv[2]
for i in range(start_i, end_i):
do(i)
我运行这个脚本:
python run.py 0 1000000
脚本完成后需要30分钟。但对我来说太长了。
因此,我创建了bash脚本run.sh:
python run.py 0 200000 &
python run.py 200000 400000 &
python run.py 400000 600000 &
python run.py 600000 800000 &
python run.py 800000 1000000
然后我运行这个脚本:
bash run.sh
脚本完成后6分钟。相当不错。我很高兴。
但是我认为,有另一种解决问题的方式(而不需要创建bash脚本),对吗?
p.map()
返回的值,那么可以使用for _ in p.imap_unordered(do, range(start_i, end_i)): pass
。 - jfs