1、 概念
线程与进程类似,不过线程是依附于进程的,在同一个进程下执行,共享相同全局变量,每个线程都有自己的一组CPU寄存器,称为线程的上下文,记录该线程上次运行的CPU寄存器状态。指令指针和堆栈寄存器指针是线程上下文中两个最重要的寄存器。线程包括开始/执行顺序和结束三部分。指令指针用于记录当前运行的上下文。当其他线程运行的时候,它可以被抢占(中断)和临时挂起(也称睡眠)——这种做法称为让步。
一个进程中的各个线程与主线程共享同一片数据空间,因此相比于独立的进程而言,线程间的信息共享和通信更加容易。但这样也会造成资源竞争导致结果不一致。
2、 开启线程
Python通过threading和thread两个模块提供线程支持,其中thread提供了低级别的/原始线程和简单的锁。Threading模块提供了更高级别/功能更全面的线程管理。
![v2-3244bd7a7f654bb11609fa584bcbe2c7_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=1ac9d7ec-eb2f-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-3244bd7a7f654bb11609fa584bcbe2c7_b.jpg)
图中通过start()方法启动线程,同时可以看出,主线程结束的时候,子线程并没有结束,还是正常执行的,由此引出守护住线程,如图所示当主线程结束的时候,子线程自动结束。