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

进程线程协程的区别?

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

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

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

协程是什么?

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

特点:

  • 初试化大小为2kb,可以动态扩大或缩小
  • 调度只在用户态,由用户态调度器控制,操作系统不参与
  • 协程的上下文切换没有用户态和内核之间的切换
相关推荐
LuckyLay14 小时前
使用 Docker 搭建 Go Web 应用开发环境——AI教你学Docker
前端·docker·golang
{⌐■_■}20 小时前
【软件工程】tob和toc含义理解
前端·数据库·mysql·golang·软件工程·tidb
hackchen1 天前
Go与JS无缝协作:Goja引擎实战之错误处理最佳实践
开发语言·javascript·golang
争不过朝夕,又念着往昔1 天前
Go语言反射机制详解
开发语言·后端·golang
Jerry Lau1 天前
go go go 出发咯 - go web开发入门系列(二) Gin 框架实战指南
前端·golang·gin
witton2 天前
Go语言网络游戏服务器模块化编程
服务器·开发语言·游戏·golang·origin·模块化·耦合
叹一曲当时只道是寻常2 天前
Softhub软件下载站实战开发(十六):仪表盘前端设计与实现
前端·golang
Jerry Lau2 天前
go go go 出发咯 - go web开发入门系列(一) helloworld
开发语言·前端·golang
天下一般2 天前
go入门 - day1 - 环境搭建
开发语言·后端·golang
大P哥阿豪2 天前
Go defer(二):从汇编的角度理解延迟调用的实现
开发语言·汇编·后端·golang