一、QThread
QThread 只介绍继承的方法
1.把线程需要实现的内容放在run函数里,建立Qthread对象调用start()函数,开辟新线程并且运行。当run函数执行完毕后线程退出。
from PyQt5.QtCore import QThreadimport timeclass MyThread(QThread):def __init__(self, parent=None):super(MyThread, self).__init__(parent) def run(self):print('开始线程')for i in range(5):print(i)time.sleep(0.5)print('结束线程')thread = MyThread()thread .start()
2.当连续调用start()函数时,并不会开辟多余的线程,如果上一个线程执行完毕,会继续执行新的start(),否则start()调用无效,可以用wait()方法等线程结束后再调用新的start()。
二、python 内置的Thread
这时候写一个函数,将函数传递到Thread类中,当执行start()时,会开辟一个线程来执行自定义函数
from threading import Threaddef recv_data(num,interval):print('开始线程')for i in range(num):print(i)time.sleep(interval)print('结束线程')p = Thread(target=recv_data, args=(5,0.5))p.start()print('我在线程之后')