QThread.sleep()与time.sleep的区别
时间: 2024-06-13 22:05:15 浏览: 328
QThread.sleep()和time.sleep()都是用于线程休眠的函数,但它们有以下几点区别:
1. QThread.sleep()是Qt框架中的函数,只能在Qt应用程序中使用,而time.sleep()是Python标准库中的函数,可以在任何Python程序中使用。
2. QThread.sleep()会让当前线程休眠指定的时间,但不会阻塞事件循环,因此其他线程仍然可以继续执行。而time.sleep()会让当前线程休眠指定的时间,并且会阻塞整个程序的执行。
3. 在GUI应用程序中,使用QThread.sleep()可以避免界面卡死,因为它不会阻塞事件循环。
<<代码块:>>
```
import time
from PyQt5.QtCore import QThread
# 使用time.sleep()休眠线程
def sleep_with_time():
print("start")
time.sleep(5)
print("end")
# 使用QThread.sleep()休眠线程
class SleepThread(QThread):
def run(self):
print("start")
self.sleep(5)
print("end")
if __name__ == "__main__":
# 使用time.sleep()休眠线程
sleep_with_time()
# 使用QThread.sleep()休眠线程
thread = SleepThread()
thread.start()
thread.wait()
```
阅读全文