如何终止sleep线程
时间: 2023-09-07 20:17:31 浏览: 94
vc++创建一个线程的方法:
如果你的程序中有一个正在运行的 `sleep` 线程,你可以使用 `thread.interrupt_main()` 来发送 `KeyboardInterrupt` 异常信号,从而终止该线程。具体来说,你可以在另一个线程中调用 `thread.interrupt_main()`,这会引发一个异常信号,在 `sleep` 线程中捕获该异常然后结束该线程。以下是一个示例代码:
```python
import threading
import time
def sleep_thread():
print('Sleeping...')
try:
time.sleep(10)
except KeyboardInterrupt:
print('Thread was interrupted!')
print('Thread finished.')
t = threading.Thread(target=sleep_thread)
t.start()
# 等待 5 秒后终止线程
time.sleep(5)
thread.interrupt_main()
```
在上面的代码中,我们首先定义了一个 `sleep_thread` 函数,它会打印一条消息表示该线程正在休眠,然后等待 10 秒钟。如果在这个过程中收到 `KeyboardInterrupt` 异常,该异常会被捕获,打印一条消息表示该线程被终止了,然后结束该线程。然后,我们创建了一个新线程并启动它,等待 5 秒钟后我们调用 `thread.interrupt_main()` 来终止该线程。当程序运行时,你会看到在 5 秒钟后 `sleep_thread` 函数被中断并退出。
阅读全文