我得到了两个for循环,内部的一个调用一个c++程序(这里用编辑器emacs代替),这个程序必须在一段时间后终止。此外,对于一个浓度,应平行计算每个‘加速度’(1、2、3、4)以加速,然后对于下一个浓度,应再次计算每个加速度
我的问题是,使用timelimit终止c++程序时,python程序不会返回到循环来计算下一个浓度,它只是停止
我已经写了一个更简单的程序,并尝试子进程打开c++程序,但它没有在一段时间后终止。我也用了时间限制。谢谢你的帮助
#!/usr/bin/python2.7
from multiprocessing import Pool
import os
import subprocess as sub
x = set([1, 2, 3, 4, ])
y = set([11, 21, ])
def j_in_y(i):
for j in y: #concentration
print i+j
cll = 'timelimit -t5 -T2 emacs' #c++ program call, for test emacs
os.system(cll)
for i in x: #acceleration
pool = Pool(processes=3)
pool.apply_async(j_in_y, (i,))
pool.close()
pool.join()
你需要加上
在主循环结束时,避免python进程在内部循环完成之前终止。否则,主线程不会等待池中的线程
相关问题 更多 >
编程相关推荐