线程间的执行顺序
主线程和子线程的结束顺序
主线程会等待所有的子线程执行结束后主线程再结束。设置守护主线程的目的是主线程退出子线程销毁,不让主线程再等待子线程去执行
有两种方式:
threading.Thread(target=要执行的函数名, daemon=True)
推荐的方法线程对象.setDaumon(True)
不推荐,已经过时的方法,但可以正常运行
线程间的执行顺序
创建了多个线程怎么执行呢。无序执行,是由cpu决定的。
示例:
import threading
import time
# 获取线程信息函数
def get_info():
time.sleep(0.5)
# 获取线程信息
current_thread = threading.current_thread()
print(current_thread)
if __name__ == '__main__':
# 创建子线程
for i in range(10):
sub_thread = threading.Thread(target=get_info)
sub_thread.start()
输出的结果如下:
<Thread(Thread-1 (get_info), started 12140)>
<Thread(Thread-5 (get_info), started 6596)>
<Thread(Thread-3 (get_info), started 12600)>
<Thread(Thread-2 (get_info), started 14184)><Thread(Thread-6 (get_info), started 7576)>
<Thread(Thread-7 (get_info), started 17132)><Thread(Thread-10 (get_info), started 23384)>
<Thread(Thread-4 (get_info), started 10348)>
<Thread(Thread-8 (get_info), started 12160)><Thread(Thread-9 (get_info), started 5464)>
Process finished with exit code 0