线程间的执行顺序

主线程和子线程的结束顺序

主线程会等待所有的子线程执行结束后主线程再结束。设置守护主线程的目的是主线程退出子线程销毁,不让主线程再等待子线程去执行

有两种方式:

  1. threading.Thread(target=要执行的函数名, daemon=True) 推荐的方法
  2. 线程对象.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