1 Star 0 Fork 0

fanyangchu/PythonCode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
thread_signal.py 794 Bytes
一键复制 编辑 原始数据 按行查看 历史
Jérôme Krell 提交于 2019-10-10 14:22 . Reformat Code by PyCharm-Community
from __future__ import print_function
import signal
import threading
from time import sleep
class producer(threading.Thread):
def __init__(self, event):
threading.Thread.__init__(self)
self.event = event
def run(self):
while self.event.is_set():
print("sub thread")
sleep(2)
else:
print("sub thread end")
exit()
def handler_thread(event):
print("main thread end")
event.clear()
def handler(signum, frame):
handler_thread(frame.f_globals['event'])
signal.signal(signal.SIGINT, handler)
print("main thread")
event = threading.Event()
event.set()
p = producer(event)
p.start()
p.join()
sleep(100) # 一定要使主线程处于活动状态,否则信号处理对子线程不起作用
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/fanych/pythoncode.git
git@gitee.com:fanych/pythoncode.git
fanych
pythoncode
PythonCode
master

搜索帮助