2
考虑运行在一个无限循环的每个线程的假想螺纹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()
运行应用程序时,按Ctrl键Ç不会停止发送SIGINT应用程序。我试图删除daemon
声明,但这并没有帮助。我错过了什么基本的想法?
谢谢。
谢谢。我现在不使用'wx'或任何其他图形软件包,只是学习。 – dotancohen
@dotancohen - 不用担心,不用客气。您可以引入一个简单的'time.sleep(5)'来表明几秒钟后台线程运行,然后让正常的程序执行完成。 –