我有两个 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()