一、QThread
QThread 只介绍继承的方法
1.把线程需要实现的内容放在run函数里,建立Qthread对象调用start()函数,开辟新线程并且运行。当run函数执行完毕后线程退出。
from PyQt5.QtCore import QThread
import time
class 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 Thread
def 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('我在线程之后')