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

进程线程协程的区别?

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

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

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

协程是什么?

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

特点:

  • 初试化大小为2kb,可以动态扩大或缩小
  • 调度只在用户态,由用户态调度器控制,操作系统不参与
  • 协程的上下文切换没有用户态和内核之间的切换
相关推荐
Aevget13 小时前
智能高效Go开发工具GoLand v2025.3全新上线——新增资源泄漏分析
开发语言·ide·后端·golang·go
asdfg125896315 小时前
小程序开发中的JS和Go的对比及用途
开发语言·javascript·golang
2501_9418814016 小时前
在墨西哥城复杂流量环境下构建高稳定性API网关的架构设计与实现实践分享
macos·golang·xcode
天远云服16 小时前
Go语言高并发实战:集成天远手机号码归属地核验API打造高性能风控中台
大数据·开发语言·后端·golang
源代码•宸19 小时前
Leetcode—1161. 最大层内元素和【中等】
经验分享·算法·leetcode·golang
Thetimezipsby1 天前
Go(GoLang)语言基础、知识速查
开发语言·后端·golang
we have a whole life2 天前
Golang(Handler入门)
开发语言·http·golang
molaifeng2 天前
Go 并发控制的艺术:深入理解 context.Context
开发语言·后端·golang
nbsaas-boot2 天前
大系统中 Java 与 Go 的技术选型分析
java·开发语言·golang
Grassto2 天前
Go Module 的版本选择算法:Minimal Version Selection(MVS)
后端·golang·go·go module