一丧“人生很多事情,终究会随着时间好起来。比如:很多人原本只是胖,久了就变好胖”
开始探讨互斥锁之前先来说一下setDaemon方法。
setDaemon方法
setDaemon的方法简单的说就是设置主线程停止的同时结束子线程。
我们来看它的用法:
import threading,time#导入多线程包和时间包
"""创建一个将执行的函数"""
def demo():
for i in range(5):
print("敲代码")
time.sleep(1)#休眠1秒,方便查看
"""创建一个函数入口"""
if __name__ == '__main__':
t1 = threading.Thread(target=demo)#用多线程执行函数
t1.setDaemon(True)#当主线程结束时,结束销毁所有子线程
t1.start()#开始线程
time.sleep(2)
print("主线程结束")
exit()#退出,结束函数
threading包中方法定义的修改
接下来我们来看如何修改继承threading包中的方法,其中的super方法为其中比较重要的内容,更加重要的为其逻辑
import threading#声明引用导入threading
class MyThread(threading.Thread):#创建一个类,它的父类为threading中的Thread
def __init__(self,num):#属性初始化
"""super继承threading中的Thread类的初始化(可以理解为Thread中的__init__的内容放到了这里)"""
super(MyThread,self).__init__()
self.num = num
def show(self):
print("我的数字",self.num)
def run(self):
self.show()
if __name__ == '__main__':
myhead = MyThread(666)#调用类,传值666
myhead.start()#调用threading类的start,mian函数->MyThread父类的start->mythread->run->show
这个类的流程为,mian函数->MyThread父类的start->mythread->run->show。因为threading包中的start方法调用run方法,故而如此
给大家看一下start方法