<分区> 分区>
Possible Duplicate:
Keyboard Interrupts with python's multiprocessing Pool
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() 更耗时的事情,每次我尝试测试运行它时,我都必须等待它完成或通过首先找到它产生的过程。请提出解决方法。
