키 누름을 수신할 때마다 함수를 호출하는 키보드 핸들러를 구현하는 가장 간단한 방법 중 하나(Linux와 Windows 모두에서 작동함)는 BlockingQueue를 사용하고 키를 눌렀을 때 큐에 키를 배치하고 큐는 나중에 코드에서 키를 가져오는 스레드입니다. 간단한 구현은 다음과 같습니다.
<code class="python">import queue import sys import threading # blocking q = queue.Queue() last_input = 0.0 def input_thread(q): global last_input while True: ch = sys.stdin.read(1) last_input = time.time() print("got key: '{}'".format(ch)) q.put(ch) if __name__ == '__main__': t = threading.Thread(target=input_thread, args=(q,)) t.daemon = True t.start() last_input_time = last_input while True: if not q.empty() and (time.time() - last_input) < 5: print("polling '{}' in the queue".format(q.get())) if time.time() - last_input_time > 5: print("nothing in the queue for a while") raise RuntimeError("no input")</code>
위 내용은 Python에서 BlockingQueue를 사용하여 키보드 처리기를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!