进程,线程,协程 区别讲解

比较项进程线程协程
占用资源随程序运行所需内存而变化初始单位为1MB,固定不可变初始一般为 2KB,可随需要而增大
调度所属资源分配由OS完成 (OS:操作系统)由 OS 的内核完成由用户完成
切换开销进程切换开销很大涉及模式切换(从用户态切换到内核态)、16个寄存器、PC、SP…等寄存器的刷新等只有三个寄存器的值修改 - PC / SP / DX.
性能问题进程独立运行 稳健资源占用太高,频繁创建销毁会带来严重的性能问题,线程之间上下文切换带来性能问题资源占用小,不会带来严重的性能问题,在线程内部切换
数据同步可通过进程间通信进行数据交换需要用锁等机制确保数据的一直性和可见性不需要多线程的锁机制,因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就好了,所以执行效率比多线程高很多

进程:是系统调度和分配资源的最小单位,拥有自己独立的堆和栈,进程由操作系统调度进程。进程维护的是程序所包含的资源(静态资源), 如:地址空间,打开的文件句柄集,文件系统状态,信号处理handler等;


线程:是CPU调度和分配任务的最小单位,拥有自己独立的栈,与同一个进程下的其他线程共享所属进程的堆,标准线程由操作系统调度。线程维护的运行相关的资源(动态资源),如:运行栈,调度相关的控制信息,待处理的信号集等;


协程:拥有自己独立的栈,与同一个进程下的其他线程共享所属进程的堆,协程由程序员在协程的代码里显式调度;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值