线程、进程、协程简述以及区别

1.进程、线程、协程

进程:狭义定义:进程就是一段程序的执行过程,是系统进行资源分配和调度的基本单位。
广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元。
线程:是进程中的一条执行路径,是操作系统能够进行运算调度的最小单位。
协程:是一种用户态的轻量级线程,协程的调度完全由用户控制。  

进程与线程的区别:

(1).进程是资源分配最小单位,线程是程序执行的最小单位;
(2).进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段,线程没有独立的地址空间,它使用相同的地址空间共享数据;
(3).CPU切换一个线程比切换进程花费小;
(4).创建一个线程比进程开销小;
(5).线程占用的资源要⽐进程少很多。
(6).线程之间通信更方便,同一个进程下,线程共享全局变量,静态变量等数据,进程之间的通信需要以通信的方式(IPC)进行;(但多线程程序处理好同步与互斥是个难点)
(7).多进程程序更安全,生命力更强,一个进程死掉不会对另一个进程造成影响(源于有独立的地址空间),多线程程序更不易维护,一个线程死掉,整个进程就死掉了(因为共享地址空间);进程对资源保护要求高,开销大,效率相对较低,线程资源保护要求不高,但开销小,效率高,可频繁切换;

协程与线程的区别:

(1).一个线程可以有多个协程,一个进程也可以单独拥有多个协程。
(2).进程线程都是同步机制,而协程则是异步
(3).协程能够保留上一次调用时的状态,每次过程重入时,就相当于进入上一次调用状态

协程的优点:

(1).协程执行的效率非常高。
(2).协程不需要多线程的锁机制

2.进程间通信方式

管道,消息队列,共享内存,信号量,socket,信号,文件锁

3.进程的三种状态

(1). 就绪状态:进程获得了除了CPU之外的所有的必要资源,只要获得CPU就可以立即执行,此时的进程处于就绪态。

(2). 运行状态:进程已经获得CPU,正在运行,在多处理其系统中,会有多个进程同时处于运行状态。

(3). 阻塞状态:处于执行状态的进程由于发生某些事件而暂时无法继续执行,放弃处理机而处于暂停状态,此时进程就处于阻塞(执行受到阻塞)状态。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值