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

进程线程协程的区别?

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

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

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

协程是什么?

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

特点:

  • 初试化大小为2kb,可以动态扩大或缩小
  • 调度只在用户态,由用户态调度器控制,操作系统不参与
  • 协程的上下文切换没有用户态和内核之间的切换
相关推荐
迷藏4947 小时前
**发散创新:Go语言中基于上下文的优雅错误处理机制设计与实战**在现代后端开发中,**错误处理**早已不是简单
java·开发语言·后端·python·golang
weixin_449290018 小时前
Python vs Go:优缺点对比
网络·python·golang
亿牛云爬虫专家9 小时前
Go Colly框架高阶技巧:如何在中间件中无缝切换代理IP
tcp/ip·中间件·golang·爬虫代理·代理ip·snippet·go colly
二妹的三爷9 小时前
【Golang】——Gin 框架中的表单处理与数据绑定
microsoft·golang·gin
yuanlaile9 小时前
想转后端,java和go学哪个更好?
java·开发语言·golang
人间打气筒(Ada)20 小时前
go实战案例:如何通过 Service Meh 实现熔断和限流
java·开发语言·golang·web·istio·service mesh·熔断限流
weixin_449190411 天前
defer和defer func执行区别
golang
呆萌很1 天前
【GO】指针练习题
golang
cch89181 天前
PHP vs Go:Web开发选谁更胜一筹?
前端·golang·php
想搞艺术的程序员1 天前
Go map 核心黑魔法:tophash 标记位的极致复用与性能跃升
golang·源码分析·性能