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

进程线程协程的区别?

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

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

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

协程是什么?

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

特点:

  • 初试化大小为2kb,可以动态扩大或缩小
  • 调度只在用户态,由用户态调度器控制,操作系统不参与
  • 协程的上下文切换没有用户态和内核之间的切换
相关推荐
Javis21121 分钟前
【Go转型AI应用开发】01.Go+OpenAI原生SDK构建LLM-Client
golang·iphone·ai-native
思成Codes2 小时前
Go 语言中数组与切片的本质区别
开发语言·后端·golang
ChineHe4 小时前
Gin框架基础篇009_日志中间件详解
golang·web·gin
Tony Bai16 小时前
Go 的 AI 时代宣言:我们如何用“老”原则,解决“新”问题?
开发语言·人工智能·后端·golang
L Jiawen17 小时前
【Golang基础】基础知识(下)
服务器·开发语言·golang
apocelipes19 小时前
docker-compose 部署单节点 kafka 4.0 测试环境
docker·golang·kafka·开发工具和环境
先跑起来再说1 天前
Go 语言的 Mutex 底层实现详解:状态位、CAS、自旋、饥饿模式与信号量
服务器·后端·golang
saber_andlibert1 天前
【C++转GO】文件操作+协程和管道
开发语言·c++·golang
teamlet1 天前
naviemail的升级之路-孵化mailrouter
golang
一抹轻笑动人1 天前
Viger笔记
笔记·golang