2

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動作中に を押すと、 2 つの KeyboardInterrupt例外が表示sleep( 1 )されsleep( 2 )ます。main のキーボード割り込みがprocesschild に転送されるのはprocessどうしてですか? 結局、それらはプロセスであり、スレッドではありません:(。

4

1 に答える 1

1

プロセスがキーボード割り込み (ctrl+c を押す)を示すシグナルをキャッチすると、KeyboardInterrupt例外がスローされます。SIGINT

Unix/Linux システムでは、親プロセスとその子プロセスを含むフォアグラウンド プロセス グループSIGINT全体にシグナルが送信されます。

于 2013-01-01T22:01:10.903 に答える