Я делаю программу, которая включается и выключается определенной клавишей на клавиатуре (используя pynput). Я поместил цикл прослушивания клавиатуры в первый поток, а цикл действий - во второй. Проблема в том, что после запуска кода он не сразу слушает клавиатуру, только через 9-10 секунд. И иногда он отказывается реагировать на кнопку Esc, а иногда работает. Как избавиться от задержки?
from threading import Thread
from pynput import keyboard
import time
flag = False
kill = False
def on_press(key):
global flag
global kill
if key == keyboard.KeyCode.from_char('a'):
print('pressed A')
flag = not flag
if key == keyboard.Key.esc:
kill = True
return False
def thr2():
print('joining...')
with keyboard.Listener(on_press=on_press) as listen:
listen.join()
def thr1():
while True:
if kill:
break
if flag:
print('looping....')
time.sleep(0.4)
if __name__ == "__main__":
thread1 = Thread(target=thr1)
thread2 = Thread(target=thr2)
thread1.start()
thread2.start()