进程、线程、协程有什么区别吗?协程是什么?

进程线程协程的区别?

进程是操作系统分配资源的基本单位。

线程是CPU调度资源的基本单位。

协程可以理解为用户态线程,是微量级线程。协程的调度是在用户态下进行,不需要切换到内核态,所以不由操作系统参与,由用户自己控制。协程有独立的栈空间,但是共享堆空间。一个进程可以跑多个线程,一个线程可以跑多个协程。

协程是什么?

Goroutine是对协程的实现,是基本的并发执行单元。

特点:

  • 初试化大小为2kb,可以动态扩大或缩小
  • 调度只在用户态,由用户态调度器控制,操作系统不参与
  • 协程的上下文切换没有用户态和内核之间的切换
相关推荐
Wzx1980125 小时前
RAG优化:17中RAG优化方案,那种才是最佳选择?
golang
李燚5 小时前
Graph 执行引擎源码:Eino 的节点调度是怎么工作的(第56篇-E42)
golang·ai编程·graph·agent框架·eino
wujf906 小时前
Go 内存泄漏排查完整教程 (pprof)
开发语言·golang·xcode
Wang's Blog7 小时前
Go-Zero项目开发5: 数据库与缓存一致性问题及 go-zero 缓存机制解析
数据库·缓存·golang
布朗克1687 小时前
Go 入门到精通-18-文件操作
java·数据库·golang
脱胎换骨-军哥8 小时前
C++ 与 Go 生成质量比拼,谁是分布式主力语言
c++·分布式·golang
怒放de生命20108 小时前
【web3基础】go-zero创建rpc服务,创建配置文件(二)
开发语言·rpc·golang·web3
2501_931803759 小时前
Go 反射:原理、核心机制与实践指南
开发语言·后端·golang
xcLeigh1 天前
Go入门:标识符命名规则与最佳实践
开发语言·后端·golang
pixcarp1 天前
GMP调度模型和GC垃圾回收机制解析
后端·学习·golang·内存管理·gc·gmp