在wait()-ing

时间:2018-07-30 18:40:44

标签: python-3.x python-multiprocessing

下面的代码可以正常工作,即,按CTRL-C时,程序会先打印“信号”,然后“退出并最终终止”:

from threading import Event
import signal

if __name__ == '__main__':
    e = Event()

    def handler(n, f):
        print('Signal')
        e.set()

    signal.signal(signal.SIGINT, handler)

    while not e.is_set():
        e.wait(3)
    print('Exit')

但是,如果我们将from threading import Event替换为from multiprocessing import Event,则该程序将无法再运行。按下CTRL-C但未设置e并且程序从不退出(必须被杀死)时,它仍会打印“信号”。

用于multiprocessing.Event()的documentation很稀缺:

  

class multiprocessing.Event

     

threading.Event的克隆。

是错误还是可以从Python文档中推断出这种现象?我在Centos7上运行Python 3.6

0 个答案:

没有答案