Skip to main content
 首页 » 编程设计

python之如何在使用 multiprocessing.Pool #python 时停止对 KeyboardInterrupt 的执行

2025年05月04日7bonelee

<分区>

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() 更耗时的事情,每次我尝试测试运行它时,我都必须等待它完成或通过首先找到它产生的过程。请提出解决方法。