后记:用这个漫画是想讲述进程、线程、协程这些基本概念的来龙去脉,为什么会出现这种技术,解决了什么问题。其实计算机发展到今天,本质上没什么变化,就是计算能力越来越快,存储能力越来越大。

多进程的出现一方面是因为我们要充分利用CPU的能力,因为它实在是太快了,比硬盘快几百万倍,遇到硬盘操作的时候,坚决不能让它等着,在那里空转,一定要切换到另外的程序去。 另外一方面是人们需要电脑“同时”运行多个程序:一边上网一边听歌。

线程的出现主要是为了提高响应性,漫画中举了一个界面不能响应的例子,同样的问题也会出现在服务器端,多个用户请求发给了服务器,当一个请求在等待IO操作的时候,其他请求可以用别的线程来处理。但是线程多了,创建的开销、切换的开销也会很大,所以考虑得考虑复用,形成线程池。

协程通过合作式调度,避免了多线程编程中各个各样烦人的、容易出错的问题:加锁,通知,阻塞。

你看到的漫画只是冰山一角,在公众号回复关键字“漫画”可以看到更多精彩文章

我的书《码农翻身》本周在京东大优惠,仅需5折,点击“阅读原文”链接即可直达购买,预购从速。

两个程序悲催的进化旅程相关推荐

  1. 蒋宇捷——程序员的进化 - 在拉勾1024程序员节上的演讲

    最近看到一篇好文,分为三个章节:选择.成长.兴趣,受益匪浅啊! -------------------------------------------------------------------- ...

  2. 程序员的进化 - 在拉勾1024程序员节上的演讲

    注:以下本文来自于我在拉勾网1024程序员节上的现场演讲. 我是蒋宇捷,信天创投的合伙人,之前是百度魔图的联合创始人. 我先做个自我介绍,其实每次介绍自己其实是很痛苦的事情,因为我前不久在拉勾的分享刚 ...

  3. 解密初、中、高级程序员的进化之路

    程序员的标准与要求 初级程序员 仅能完成简单模块和项目的开发工作,难以胜任复杂模块的开发.通常是入行不久, 1 年及以下工作经验的同学. 能力要求 熟悉前端基础知识如 HTML.JS.CSS . 能够 ...

  4. 解密初、中、高级程序员的进化之路(前端)

    序员的标准与要求 初级程序员 仅能完成简单模块和项目的开发工作,难以胜任复杂模块的开发.通常是入行不久, 1 年及以下工作经验的同学. 能力要求 熟悉前端基础知识如 HTML.JS.CSS . 能够使 ...

  5. 解密Android初、中、高级程序员的进化之路

    程序员的标准与要求 初级程序员 仅能完成简单模块和项目的开发工作,难以胜任复杂模块的开发.通常是入行不久, 1 年及以下工作经验的同学. 能力要求 有良好的JAVA基础,熟练掌握面向对象思想. 熟练掌 ...

  6. 两个程序员的泰国普吉岛之行

    十一长假后,我和女朋友一起去了普吉岛游玩(作为两个程序员,不能每天敲代码,也应该放松下自己),玩的很Happy,也是我们第一次出国,所以更带有许多兴奋.也许是由于玩的太High,导致回家后的第二天,就 ...

  7. Java内存分析1 - 从两个程序说起

    这次看一些关于JVM内存分析的内容. 两个程序 程序一 首先来看两个程序,这里是程序一:JVMStackTest,看下代码: package com.zhyea.robin.jvm;public cl ...

  8. java可用于开发两类程序_此内容适合初学者java基础知识 第一章

    (一)Java 可用来生成两类程序:应用程序(Application). 小应用程序( Applet ) . (二)Java 既是一种解释执行的语言,也是一种编译执行的语言 (三)Java技术体系 1 ...

  9. Python输入账号密码判断是否正确并输出,典型案例-百钱买百鸡的两个程序代码

    目录 前 一.输入账号密码判断是否正确并输出 1.实现的功能 2.代码程序 3.运行截图 二.典型案例-百钱买百鸡 1.实现的功能 2.代码程序 3.运行截图 前言 1.因多重原因,本博文由两个程序代 ...

最新文章

  1. AWS 发布了新的负载均衡器 ALB
  2. 若依框架二次开发中的坑
  3. 控件setVisible为false会导致控件被移除
  4. Flask蓝图使用的方法
  5. python canvas画弧度_超清字符画——Python代码
  6. 机器学习LDA——实验报告
  7. 计算机绘图说课视频,机械图识读与计算机绘图说课PPT课件.ppt
  8. 什么叫做镶件?什么情况下需要做镶件?模具做镶件有什么缺陷?
  9. 大疆的这个可编程教育机器人,可真不是个一般的机器人
  10. 大学英语B116-写作
  11. Mariadb数据库
  12. linux时间设置与同步--NTP
  13. Touch ID回归,为用户对苹果最期待功能
  14. 计算机无线网怎么安装教程,全民wifi驱动怎么安装_电脑安装全民wifi驱动教程
  15. 虚拟机中的ubuntu怎么设置1920X1080分辨率
  16. 信息隐藏技术综述-学习笔记
  17. 2022-2028年中国担保贷款行业市场全景调查及投资潜力研究报告
  18. 凯撒密码---最简单的加密方式之一
  19. springMVC文件上传
  20. Linux_正则表达式与文件格式化处理详解《鸟哥的Linux私房菜》学习笔记(极其详细,看完这篇必学会)

热门文章

  1. Alpa: Automating Inter- and Intra-Operator Parallelism for Distributed Deep Learning阅读笔记
  2. 面试知识点梳理一:概率论和线性代数
  3. OAF开发基本知识点
  4. 窥探SQL: 2.基础查询与排序
  5. iOS_33_音频转换
  6. 1小时销量突破50万台!小金刚Redmi Note 10系列力创首销新纪录
  7. wsimport 无法读取wsdl文档,unknown extensibility element or attribute “EndpointReference“
  8. ICPC Latin American Regional – 2017 B题(模拟+思维)
  9. 软件测试周刊(第73期):每个人都有一个觉醒期,但觉醒的早晚决定个人的命运。
  10. keil5 中的wraing:no previous prototype SystemInit