目标:
    1:理解主线程与子线程的关系
    2:知道使用 threading.Thread 模块的类创建线程(子线程)对象(threading是模块,Thread是类)
    3:知道 threading.Thread 类的 target 参数能够指定子线程执行的任务

    一:什么是线程?主线程与子线程的关系?

    什么是线程?线程可以理解为程序执行的一条分支,也是程序执行流的最小单元,线程是被系统独立调动的和分派的基本单元,线程不拥有自己的系统资源,只拥有一点在运行中必不可少的资源,但是它可以与同属于同一个进程的其他线程共享所拥有的资源

    主线程:当一个程序启动时,就会建立一个主进程,这个主进程内又包含了一个主线程,简而言之,系统启动就会建立一个主进程,主进程包含主线程,因此程序启动就会建立一个主线程!!

    子线程:子线程是由主线程(程序启动自动生成主线程)创建的,建立之后子线程与主线程一起同时向下执行

    理解主线程与子线程的关系:

    image.png

    主线程重要的方面:
    1:主线程创建子线程
    2:主线程通常最后执行结束(子线程全部结束执行主线程才结束),打扫战场,如各种关闭操作


    二:threading模块的Thread类创建线程(子线程)步骤

    1:导入threading模块
    2:利用threading模块的Thread类创建子线程对象
    3:利用类的target参数为子线程指定分支任务(例如 target = 函数名,注意函数没有括号
    4:启动创建的子线程,创建子线程对象 . start()

    创建步骤代码演示

    image.png

    注意事项:

    1:在利用 Thread 类创建的子线程对象用targrt参数指定任务是函数,且没有括号!!!
    2:创建的子线程对象只有调用start()方法,子线程才会执行!
    3:主线程只有在所有子线程全部执行结束后才结束执行!
    4:创建多个子线程对象,利用start()方法启动,因为计算机运算速度超快,故可看做多个子线程是同时启动运行的!

    线程实例应用(唱歌跳舞):

    image.png