实现键盘处理程序的最简单方法之一是使用 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中文网其他相关文章!