Python-进程与线程
什么是进程?
操作系统用来调度和分配资源的一个单位。每个应用程序至少有一个进程。
进程是竞争计算机资源的基本单位。(进程是最小的内存分配单位,作用是分配资源)
※ 单核CPU: 同一时刻只能执行一个进程。但若CPU运行速度足够快,能在不同的应用程序进程之间切换。
《操作系统原理》:关于进程调度算法
频繁切换进程/线程开销非常大,上下文频繁保存加载, 消耗大量CPU资源。
什么是线程?
线程是进程的一部分,一个进程可以有一个线程,或多个线程。
(线程是操作系统调度的最小单位(轻量),作用是利用CPU执行代码,它访问进程资源,但不拥有资源)
# 线程直接被CPU执行,进程内至少含有一个线程,也可以开启多个线程
# 开启一个线程所需要的时间要远远小于开启一个进程
# 多个线程内部有自己的数据栈,数据不共享
# 全局变量在多个线程之间是共享的
线程切换消耗的资源比进程切换消耗的资源要少很多。
线程与进程最主要的区别是:分工不同。
- python 无法充分利用多核CPU的优势