Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在pyhton中终止进程中的所有进程,但出现异常:多处理_Python_Exception_Python Multiprocessing - Fatal编程技术网

Python 如何在pyhton中终止进程中的所有进程,但出现异常:多处理

Python 如何在pyhton中终止进程中的所有进程,但出现异常:多处理,python,exception,python-multiprocessing,Python,Exception,Python Multiprocessing,如果进程中有异常,我想杀死所有进程。 这是试用代码 import multiprocessing as mp; import time; def f(x): if x==1: raise Exception("job error"); time.sleep(x*0.2); print x; return x*x; if __name__ == '__main__': p = mp.Pool(processes=5); try: for i in [4,

如果进程中有异常,我想杀死所有进程。 这是试用代码

import multiprocessing as mp;
import time;

def f(x):
  if x==1:
    raise Exception("job error");
  time.sleep(x*0.2);
  print x;
  return x*x;

if __name__ == '__main__':
  p = mp.Pool(processes=5);
  try:
    for i in [4,6,3,5,1]:
      p.apply_async(f, (i,));
  except Exception as e: # exception is not caught!
    print "catch",e;
    p.terminate();
  p.close();
  p.join();
但是,没有捕获异常。 如何捕获流程中的异常并终止所有流程?
我正在使用python 2.7。

这是否回答了您的问题?检查这个,它不工作。只有在所有进程完成后,我才能捕获异常。我想做的是在出现第一个异常时立即终止所有进程。您可以尝试进行一轮工作,而不是使用预期