可能重复:
键盘中断与 python 的多处理池
Python 的多处理模块有一个叫做 Pool http://docs.python.org/library/multiprocessing.html#module-multiprocessing.pool
当一个进程池正在运行时,我无法让脚本使用 KeyboardInterrupt 终止,即 Ctrl + c。池产生新进程,唯一退出的方法是 ctrl + z 然后手动杀死它们。
这是我尝试对其进行测试的脚本:
import multiprocessing
import random
import time
def sometask(arg):
#do something nasty to arg
time.sleep(arg)
return random.randint(0,arg)
if __name__=="__main__":
pool = multiprocessing.Pool(processes=4)
print pool.map(sometask, range(10))
我的主脚本尝试做一些比 time.sleep() 更耗时的事情,每次我尝试测试运行它时,我都必须等待它完成或通过首先找到它的进程的 ID 手动终止它产生。请提出解决方法。