各スレッドを無限ループで実行する架空のスレッド Python アプリケーションを考えてみましょう。
import signal
import sys
import threading
import time
class CallSomebody (threading.Thread):
def __init__(self, target, *args):
self._target = target
self._args = args
threading.Thread.__init__(self)
def run (self):
self._target(*self._args)
def call (who):
while True:
print "Who you gonna call? %s" % (str(who))
def signal_handler(signal, frame):
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
a=CallSomebody(call, 'Ghostbusters!')
a.daemon=True
b=CallSomebody(call, 'The Exorcist!')
b.daemon=True
a.start()
b.start()
a.join()
b.join()
アプリケーションの実行中に、 を押して SIGINT を送信してCtrlCも、アプリケーションは停止しません。ステートメントを削除しようとしましたdaemon
が、役に立ちませんでした。私が見逃している基本的なアイデアは何ですか?
ありがとう。