进程,线程,携程以及并发和并行

本文深入解析进程、线程和协程的概念及其差异。进程是系统资源分配的基本单位,线程是CPU调度的最小单位,协程则由程序控制上下文切换,开销极小。文章还探讨了并发与并行的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进程

进程是相对于 程序而言,程序是一堆静止的文件, 而当程序运行起来以后 就是一个进程,是动态的。  操作系统会为进程分配CPU ,内存,磁盘空间等一系列资源。进程是系统资源分配的最小单位, 进程通过消息队列,共享内存等机制实现进程间通信。

进程是抢占式的争夺CPU运行自身

线程

线程是由进程创建的,共享进程的的内存地址空间,操作系统会为线程创建堆栈的而分配内存,这些开销并不大。线程通过共享变量和锁机制 协作。线程是CPU调度的最小单位

 

协程

协程是属于线程的, 是顺序处理的,在任何给定时间只有一个协程在执行。

协程与线程的主要区别是什么 : 协程的上下文切换需要极小的资源,是程序本身控制的。  而线程的上下文切换需要操作系统内核调度,而且创建线程的开销是比协程大的多的。所以当线程多了以后自身调度的开销就非常大,而协程可以有成千上万个

 

 

并发: 需要cpu 调度,多任务是交替运行的。 有可能是模拟的并发,比如1核CPU。 

并行: 需要硬件支持, 多和同时处理

 

参考链接:

Difference between a “coroutine” and a “thread”?

进程、线程和协程的概念

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值