Я использую поток для чтения строк из потока (/ 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 (), который может оказаться полезным в будущем (для некоторой очистки). Есть идеи?