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

进程线程协程的区别?

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

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

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

协程是什么?

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

特点:

  • 初试化大小为2kb,可以动态扩大或缩小
  • 调度只在用户态,由用户态调度器控制,操作系统不参与
  • 协程的上下文切换没有用户态和内核之间的切换
相关推荐
不是万能的豆学长2 小时前
排查Go服务40天后的内存泄漏问题
开发语言·后端·golang·go
tachibana22 小时前
Go 语言 Map 的底层实现原理
开发语言·后端·golang·make
tachibana24 小时前
Go语言里slice是怎么扩容的?
后端·golang·go·切片
西瓜很甜哟4 小时前
golang实现大文件分片上传
后端·golang·html
tachibana218 小时前
使用for range 的时候,它的地址会发生变化吗?
开发语言·后端·golang·go·语法
王中阳Go19 小时前
Go 后端转 AI:非科班怎么补?一张 3 列路线表(可保存)
开发语言·人工智能·后端·python·golang·大语言模型
for_ever_love__1 天前
LangChain Agentic RAG:让 Agent 自己决定要不要检索、检索几次
人工智能·golang·langchain·rag·langgraph·agentic·自适应检索
谢亮_vipxieliang1 天前
Go gRPC基础与实战
开发语言·后端·golang
徐小黑ACG1 天前
Golang goroutine、通道、锁
开发语言·后端·golang
FfHUCisI2 天前
Go 性能分析工具 pprof:CPU、Heap 与 Goroutine 实战
数据库·golang