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

进程线程协程的区别?

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

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

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

协程是什么?

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

特点:

  • 初试化大小为2kb,可以动态扩大或缩小
  • 调度只在用户态,由用户态调度器控制,操作系统不参与
  • 协程的上下文切换没有用户态和内核之间的切换
相关推荐
geovindu8 小时前
go: Semaphore Pattern
开发语言·后端·设计模式·golang·企业级信号量模式
dusk_star12 小时前
go语言--笔记--封装、组合(继承)
笔记·golang
姚不倒13 小时前
Go 语言基础入门:从零到实战,一篇文章掌握核心语法
云原生·golang
XMYX-016 小时前
33 - Go 文本模板 template:从入门到原理深挖
golang·正则表达式
知彼解己19 小时前
从后端角度理解 AI Agent:理论 + Go 实战(附 MCP 服务器实现)
java·golang·ai编程
云川之下20 小时前
【go】建工程、初始化、module/package/import语法
golang·初始化
XMYX-020 小时前
32 - Go 正则表达式:从匹配字符串到理解 RE2 引擎
golang·正则表达式
存在morning1 天前
【GO语言开发实践】二 GO 并发快速上手
大数据·开发语言·golang
geovindu2 天前
go: Read-Write Lock Pattern
开发语言·后端·设计模式·golang·读写锁模式
知彼解己2 天前
Go 开发环境 安装
后端·golang