如何用空格键使一个线程暂停,然后按空格键再次启动
时间: 2023-06-08 09:08:41 浏览: 169
一个线程的暂停和启动可以通过使用Python的Threading库中的Event对象来实现。这里给出一个示例代码实现这个功能:
```
import threading
import time
class MyThread(threading.Thread):
def __init__(self, event):
threading.Thread.__init__(self)
self.stopped = event
def run(self):
while not self.stopped.wait(0.1):
print("Thread is running...")
stopFlag = threading.Event()
thread = MyThread(stopFlag)
thread.start()
while True:
key = input("Press space to pause thread:")
if key == " ":
print("Thread pausing...")
stopFlag.set()
time.sleep(2)
print("Thread resumed!")
stopFlag.clear()
```
在这个示例中,我们定义了一个继承自Thread的MyThread类,并在其中运行一个无限循环。在循环中,我们不断打印一些信息,同时在每次循环开始时检查stopFlag事件是否已经设置。如果设置了事件,线程会停止并等待下一个通知。然后我们再启动一个循环,等待用户敲击空格键来暂停线程。当用户按下空格键时,我们设置stopFlag事件并等待2秒钟以确保线程已经停止,然后再次清除事件以继续线程的执行。
阅读全文