我正在使用线程从流(/dev/tty1)中读取字符串,同时处理主循环中的其他内容。我希望线程在按下 CTRL-C 时与主程序一起终止。
from threading import Thread
class myReader(Thread):
def run(self):
with open('/dev/tty1', encoding='ascii') as myStream:
for myString in myStream:
print(myString)
def quit(self):
pass # stop reading, close stream, terminate the thread
myReader = Reader()
myReader.start()
while(True):
try:
pass # do lots of stuff
KeyboardInterrupt:
myReader.quit()
raise
通常的解决方案 - run() 循环内的布尔变量 - 在这里不起作用。处理此问题的推荐方法是什么?
我可以只设置 Daemon 标志,但是我将无法使用可能在以后证明有价值的 quit() 方法(进行一些清理)。有任何想法吗?