首先来体验下什么是多线程:

如图:利用多线程同时执行sing和worker2个函数:

python 关闭framework python 关闭线程的方法_python关闭线程

'''多线程'''
importtimeimportthreadingdefsing():'''唱歌5秒钟'''
for i in range(3):print("---正在唱歌---")
time.sleep(1)#todo 创建Thread时执行的函数,运行结束,那么这个子线程就结束了
defworker():'''工作5秒钟'''
for i in range(3):print("---正在工作---")
time.sleep(1)defrun():
t1= threading.Thread(target=sing)
t2= threading.Thread(target=worker)
t1.start()
t2.start()if __name__ == '__main__':
run()

线程的创建从调用start方法开始,函数结束时,线程结束。

如图、;

python 关闭framework python 关闭线程的方法_子线程_02

'''多线程'''
importtimeimportthreadingdefsing():'''唱歌5秒钟'''
for i in range(5):print("---第{}次唱歌---".format(i))
time.sleep(1)#todo 创建Thread时执行的函数,运行结束,那么这个子线程就结束了
defworker():'''工作5秒钟'''
for i in range(5):print("---第{}次工作---".format(i))
time.sleep(1)defrun():
t1= threading.Thread(target=sing)
t2= threading.Thread(target=worker)
t1.start()#TODO 调用start时,线程创建。函数结束的时候,线程结束。
t2.start()whileTrue:print(threading.enumerate())if len(threading.enumerate()) == 1:returntime.sleep(1)if __name__ == '__main__':
run()

在类里面实现多线程,必须定义run方法,启动线程时实际是调用的run方法:

importthreadingimporttimeclassMyThreading(threading.Thread):defrun(self):'''通过继承调用多线程必须有run方法'''
for i in range(5):print("这是线程{}".format(i))
time.sleep(1)
self.mut()defmut(self):for i in range(1,10):for j in range(1,i+1):print("{}*{}={}".format(i,j,(i*j)),end='\t')print()if __name__ == '__main__':
mt=MyThreading()
mt.start()

使用sleep来控制,线程的执行顺序:

python 关闭framework python 关闭线程的方法_python 关闭framework_03