线程和进程

线程:线程是操作系统能够进行运算调度的最小单位。进程被包含在进程中,是进程中实际处理单位。一条线程就是一堆指令集合。

一条线程是指进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

     优点:共享内存,I/O操作时候,创造并发操作

     缺点:抢占资源(相当于建人)

进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

   优点:同事利用多个CPU,能够同时进行多个操作

   缺点:耗费资源(重新开辟内存空间相当于建房子)

进程不是越多越好,CPU个数 == 进程个数

线程也不是越多越好,具体案例具体分析,请求上下文切换耗时

进程和线程的目的:提高执行效率

计算机最小的任务执行单元:线程

I/O操作不占用CPU时间:

       1、I/O密集型(不用CPU)---》多线程

       2、计算机密集型(用CPU)-----》多进程

       3、存在大量且不需要CPU操作时------》协程  

GIL限制:在同一时刻,只能有一个线程进入CPython解释器。

 python的进程上有个GIL 全局解释性锁,这个会造成,一个进程的多个线程,不能同时使用多个cpu,而是cpu每次只能选一个线程执行,因此,多线程在cpu执行的是无效的。但是在I/O操作的时候是可以同步的,比如time.sleep就是io 操作,多线程,可以同时等待

 

进程和程序关系
        进程:程序实例  程序子集   有所谓生命周期,可以kill叼 比如你安装的word   是一个程序  ,你打开一个文档是一个进程,可以关掉。

       进程要想完成并发执行的功能就要进程切换
 进程切换 ,上下文切换,进程运行,说明在cpu的寄存器里面有数据了。假如5条数据现在有两条,就切换了,现在要保存现场,回来时候  要恢复现场。如果机器上有几千个进程,会切换 上万个切换需要时间,进程切换时监控程序来完成的,也就是内核,消耗时间

正常程序执行空间是用户空间,

占用在内核,说明大量时间消耗到进程切换。不好。
进程和程序关系

相关文章:

  • 2021-10-09
  • 2022-12-23
  • 2022-12-23
  • 2021-10-06
  • 2022-12-23
  • 2022-12-23
  • 2021-06-15
  • 2021-12-30
猜你喜欢
  • 2021-06-24
  • 2021-08-19
  • 2021-07-23
  • 2022-12-23
  • 2021-09-13
  • 2021-11-20
相关资源
相似解决方案