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

进程线程协程的区别?

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

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

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

协程是什么?

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

特点:

  • 初试化大小为2kb,可以动态扩大或缩小
  • 调度只在用户态,由用户态调度器控制,操作系统不参与
  • 协程的上下文切换没有用户态和内核之间的切换
相关推荐
名字还没想好☜12 小时前
Go 的 time.Ticker 陷阱:定时任务里被忽略的内存泄漏与正确关闭
java·数据库·golang·go·定时器
灯澜忆梦18 小时前
Go 语言 _JSON---序列化与反序列化
开发语言·golang·json
布朗克16819 小时前
Go入门到精通-22-同步原语
开发语言·后端·golang·同步原语
怒放de生命201021 小时前
【web3基础】go-zero使用etcd实现服务注册与发现(四)
golang·web3·etcd·go-zero
灯澜忆梦21 小时前
Go语言_文件---文件操作
开发语言·后端·golang
Wang's Blog1 天前
Go-Zero项目开发4: 用户服务搜索、详情与统一错误处理
开发语言·golang
灯澜忆梦1 天前
GO_文件处理---字符串操作
开发语言·golang
Wzx1980122 天前
RAG优化:17中RAG优化方案,那种才是最佳选择?
golang
李燚2 天前
Graph 执行引擎源码:Eino 的节点调度是怎么工作的(第56篇-E42)
golang·ai编程·graph·agent框架·eino
wujf902 天前
Go 内存泄漏排查完整教程 (pprof)
开发语言·golang·xcode