0
Я смотрел на остановку потока после прерывания пользователя, но по какой-то причине он не работает для меня. Может кто-нибудь помочь. Проблема в том, что программа просто игнорирует ошибку прерывания клавиатуры, она не отключается после прерывания клавиатуры.Как убить поток, используя функцию threading.event?
#!/usr/bin/env python
#
#
from time import sleep
from Queue import Queue
from threading import Thread,Event,Lock
def Count():
global Exit
for i in range(5):
try:
if not Exit.is_set():
with l:
print i;sleep(2)
except KeyboardInterrupt:
Exit.set()
if __name__ == '__main__':
l = Lock()
q = Queue()
Exit = Event()
for i in range(2):
Bot = Thread(target=(Count)).start()
q.put(Bot)
#q.join()
#OutPut
0
1
^C2
3
4
0
Exception KeyboardInterrupt in <module 'threading' from '/usr/lib/python2.7/threading.pyc'> ignored
Можете ли вы рассказать, что это ошибка и ожидаемое поведение? – Fejs