例子:
import threading
import time
def test1():
for iin range(5):
print("-----test1----%d---" % i)
time. sleep(1)
# 如果创建 Thread 时执行的函数,运行结束那么意味着这个子线程结束了
def test2():
for iin range(10):
print("-----test2----%d---" % i)
time. sleep(1)
def main():
t1= threading.Thread(target=test1) # 定义第 1 个线程
t2= threading.Thread(target=test2) # 定义第 2 个线程
t1.start() # 子线程 1 开始运行
t2.start() # 子线程 2 开始运行
while True:
print(threading.enumerate()) # 打印所有线程信息
if len(threading.enumerate()) <= 1:
break
time. sleep(1)
if __name__== '__main__':
main()
总结
虽然线程间的运行是无序的,但是主线程会等待子线程结束,然后再结束。
若是一个程序的主线程被杀死,那么子线程也必定会结束。
网友评论