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

进程线程协程的区别?

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

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

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

协程是什么?

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

特点:

  • 初试化大小为2kb,可以动态扩大或缩小
  • 调度只在用户态,由用户态调度器控制,操作系统不参与
  • 协程的上下文切换没有用户态和内核之间的切换
相关推荐
sweetheart7-77 小时前
go/golang 入门学习笔记(Java/Python/C++转Go快速上手)
笔记·学习·golang·go语言
Vect__12 小时前
C++无痛转go第一天,从hello world到切片
开发语言·c++·golang
研究点啥好呢1 天前
字节跳动Go后端开发工程师面试题精选:10道高频考题+答案解析
面试·golang·php·求职招聘
xxjj998a2 天前
PHP vs Go vs Python:三大语言终极对比
python·golang·php
jieyucx2 天前
Go 切片核心:子切片详解(下篇)
开发语言·算法·golang·切片
会编程的土豆2 天前
由c/c++速通go语言,新手必看
c语言·c++·golang
念何架构之路2 天前
Go Socket编程
开发语言·后端·golang
codeejun2 天前
每日一Go-59、云原生入门为什么一定要学Docker?
docker·云原生·golang
初心未改HD3 天前
gRPC 与 Protobuf 实战指南
开发语言·golang
jieyucx3 天前
Go语言切片:动态灵活的数据序列
算法·golang·指针·顺序表·数组·结构体·切片