1、通过继承Thread的类完成创建线程
上一节对于多线程的使用是一个最基本的使用,但是如果我们在代码中遇到了比较复杂的多线程任务,就很难满足我们的需求,这里就需要通过继承Thread的类来完成线程的创建
实例:
import threading
import time
class MyThread(threading.Thread):
def run(self):
for i in range(4):
time.sleep(1)
# name属性中保存的是当前线程的名字
msg = '我是' + self.name + '@' +str(i)
print(msg)
if __name__ == '__main__':
t = MyThread()
# 注意,这里一定要使用`start`,他会默认去调用线程类的run方法
t.start()
运行结果:
我是Thread-1@0
我是Thread-1@1
我是Thread-1@2
我是Thread-1@3
上面是单线程的延时,如果是多线程,这里需要注意一点,多线程的创建一定是在线程类里面进行,在run方法进行调用,切记不可在主函数调用,不然仅仅是执行了一次普通的方法而已。
多线程实例:
import threading
import time
class MyThread(threading.Thread):
def run(self):
for i in range(4):
time.sleep(1)
# name属性中保存的是当前线程的名字
msg = '我是' + self.name + '@' +str(i)
self.login()
print(msg)