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

进程线程协程的区别?

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

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

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

协程是什么?

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

特点:

  • 初试化大小为2kb,可以动态扩大或缩小
  • 调度只在用户态,由用户态调度器控制,操作系统不参与
  • 协程的上下文切换没有用户态和内核之间的切换
相关推荐
西瓜很甜哟4 小时前
golang每日十题第2期
golang
程序员小八7779 小时前
Go 语言特性
开发语言·后端·golang
X1A0RAN13 小时前
pytest 动态报告:数据可视化篇 —— 用 Golang + Echo 打造自动化测试任务可视化平台
信息可视化·golang·pytest
圣殿骑士-Khtangc15 小时前
Go-sync包并发原语详解从Mutex到Once的深度应用
golang
灯澜忆梦16 小时前
【基于GO的Web开发15】gin路由和路由组
前端·后端·golang·gin
xcLeigh17 小时前
Go入门:rune与byte的区别和使用场景
android·javascript·golang
深念Y17 小时前
数据库层设计的取舍:ORM 便利性与手写 SQL 的安全性权衡
java·数据库·sql·golang·框架·语言·ome
深念Y18 小时前
Makefile vs go run:Go 项目构建方式对比
java·开发语言·golang·k8s·编译·流水线·cicd
西瓜很甜哟18 小时前
golang每日十题
golang
灯澜忆梦19 小时前
【基于GO的Web开发14】gin请求重定向
前端·后端·golang·gin