当前位置: 首页 > backend >正文

进程、线程和协程切换的比喻

进程、线程和协程切换的比喻

1. 进程切换像白宫换总统

想象进程是一个国家的白宫,切换进程就像换总统:

  • 不只是换一个人进去,
  • 还要重新安排办公室装修、安保、机密文件搬运,
  • 办公室里的家具、电话、文件柜都要重新调整,
  • 安全措施要更新,流程复杂且耗时长。

所以,进程切换开销非常大,系统必须做很多准备工作。


2. 线程切换像换工位

线程在同一个进程里,就像一家公司里的不同员工:

  • 换线程像员工换工位,
  • 需要搬一下电脑、调换屏幕、把办公桌上的东西挪挪,
  • 还得通知公司调度员安排顺序,
  • 虽然没有进程切换那么复杂,但也要耗费时间和精力。

线程切换开销中等,需要操作系统帮忙管理和协调。


3. 协程切换像麦当劳找座位

协程(Go 里的 goroutine)就像你去麦当劳找座位:

  • 找个空桌子坐下,
  • 不需要搬电脑、不用重新装修、也不必通知管理员,
  • 你自己决定什么时候坐下、什么时候起身,
  • 切换非常快,几乎没有额外开销。

协程切换完全在用户自己手里完成,不依赖操作系统,轻量且高效。

小结

  • 进程切换重,慢,资源消耗大
  • 线程切换中等,系统帮忙但成本仍高
  • 协程切换轻,快,由程序自己调度,资源占用极少

这就是为什么 Go 可以用少量线程同时跑成千上万的协程,实现高并发又节省资源。

http://www.xdnf.cn/news/8255.html

相关文章:

  • 【分治】归并排序:递归版 非递归版
  • IDC机房交换机紧急更换的流程和注意事项
  • torch.gather()和torch.sort
  • 火语言UI组件--控件函数调用
  • 免费开源的图片分割小工具
  • RT-Thread源码阅读(1)——基本框架
  • 通过云服务器实现异地组网 部署WireGuard
  • 【机器学习】 关于外插修正随机梯度方法的数值实验
  • 听脑AI:革新沟通方式,开启高效信息时代
  • 核实发票的真实性与合法性-发票查验接口-虚假发票防范
  • 关于Newtonsoft版本不兼容问题处理
  • sentinel滑动时间窗口算法详解
  • 系统性能分析基本概念(3) : Tuning Efforts
  • imuerrset
  • PT8P2104触控型8Bit MCU
  • 【Django Serializer】一篇文章详解 Django 序列化器
  • deep-rtsp 摄像头rtsp配置工具
  • 高频与超高频RFID读写器技术应用差异解析
  • 论文解读: 2018-Detection of spam reviews: a sentiment analysis approach
  • 宝尊电商一季度净收入21亿元 品牌管理收入同比大增
  • 冲刺卷软考总结-案例分析
  • 地信GIS专业关于学习、考研、就业方面的一些问题答疑
  • Windows系统下Docker安装青龙面板
  • 常见高危端口解析:网络安全中的“危险入口”
  • 101个α因子#15
  • CentOS7安装 PHP-FPM 7.4
  • 2025海外短剧CPS系统开发指南:高付费市场解析与增速全景图
  • 【CSS】九宫格布局
  • openEuler 22.03 LTS-SP3 系统安装 docker 26.1.3、docker-compose
  • 微信小程序之Promise-Promise初始用