进程与线程
目录
-
计算机的核心是CPU,CPU承担了所有的计算任务
-
一个CPU核心一次只能执行一个任务,多个CPU核心可以同时执行多个任务
-
一个CPU一次只能执行一个进程,其他进程处于非运行状态
-
进程中包含的执行单元叫线程,一个进程可以包含多个线程。
-
一个线程中内存空间是共享的,每个进程里的线程都可以使用这个共享空间,一个线程在使用这个共享空间的时候,其他线程必须等它结束。
-
通过“锁”实现,作用就是防止多个线程使用这个内存空间,先使用的线程会将空间上锁,其他线程就在门口等待,打开锁再进去。
-
进程:表示程序的一次执行
-
线程:CPU运算的基本调度单位
-
GIL:全局解释器锁,Python里面的通行证,而且只有一个,拿到通行证的线程才可以执行。
-
Python的多线程试用范围:大量密集的I/O处理
-
Python的多进程:大量的密集并行计算
-
线程的概念
(1)进程内的一个执行单元
(2)操作系统中一个可调度的实体
(3)进程中相对独立的一个控制流序列
(4)执行时的现场数据和其他调度所需的信息。
-
再论main函数
(1)C/C++程序被执行后从main函数开始运行。
(2)其运行过程:
(3)线程是进程使用CPU资源的基本单位。
-
深入理解进程和线程
(1)进程中可以存在多个线程并行执行,共享进程资源
(2)线程是被调度的执行单元,而进程不是调度单元。
(3)线程不能脱离进程单独存在,只能依赖于进程运行。
(4)线程有生命期,有诞生和死亡。
(5)任意线程都可以创建其它新的线程。
-
小结
(1)程序是物理存储空间中的数据文件
(2)进程是程序运行后得到的执行实体
(3)线程是进程内部的具体执行单元
(4)一个进程内部可以有多个线程存在
(5)进程是操作系统资源分配的基本单位
(6)线程是操作系统调度执行的基本单位。