gpt4 book ai didi

Python:当 KeyboardInterrupt 被转发到多处理子进程时?

转载 作者:可可西里 更新时间:2023-11-01 10:38:01 27 4
gpt4 key购买 nike

我在 Windows 上执行了以下测试代码:

import multiprocessing
import time

def child() :
while True :
time.sleep( 2 )

if __name__ == '__main__' :
multiprocessing.Process( target = child ).start()
while True :
time.sleep( 1 )

如果我在它工作时按 Ctrl-C,我会看到 两个 KeyboardInterrupt 异常 - 一个用于 sleep( 1 ) 和一个用于 sleep( 2 )。主 process 中的键盘中断是如何转发给子 process 的?它们毕竟是进程,而不是线程:(。

最佳答案

当进程 catches the SIGINT signal 时抛出 KeyboardInterrupt 异常这表明 a keyboard interrupt (按 ctrl+c)。

在 Unix/Linux 系统中,SIGINT 信号被发送到整个 foreground process group其中包括父进程及其子进程。

关于Python:当 KeyboardInterrupt 被转发到多处理子进程时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14114433/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com