两个程序悲催的进化旅程
后记:用这个漫画是想讲述进程、线程、协程这些基本概念的来龙去脉,为什么会出现这种技术,解决了什么问题。其实计算机发展到今天,本质上没什么变化,就是计算能力越来越快,存储能力越来越大。
多进程的出现一方面是因为我们要充分利用CPU的能力,因为它实在是太快了,比硬盘快几百万倍,遇到硬盘操作的时候,坚决不能让它等着,在那里空转,一定要切换到另外的程序去。 另外一方面是人们需要电脑“同时”运行多个程序:一边上网一边听歌。
线程的出现主要是为了提高响应性,漫画中举了一个界面不能响应的例子,同样的问题也会出现在服务器端,多个用户请求发给了服务器,当一个请求在等待IO操作的时候,其他请求可以用别的线程来处理。但是线程多了,创建的开销、切换的开销也会很大,所以考虑得考虑复用,形成线程池。
协程通过合作式调度,避免了多线程编程中各个各样烦人的、容易出错的问题:加锁,通知,阻塞。
你看到的漫画只是冰山一角,在公众号回复关键字“漫画”可以看到更多精彩文章
我的书《码农翻身》本周在京东大优惠,仅需5折,点击“阅读原文”链接即可直达购买,预购从速。
两个程序悲催的进化旅程相关推荐
- 蒋宇捷——程序员的进化 - 在拉勾1024程序员节上的演讲
最近看到一篇好文,分为三个章节:选择.成长.兴趣,受益匪浅啊! -------------------------------------------------------------------- ...
- 程序员的进化 - 在拉勾1024程序员节上的演讲
注:以下本文来自于我在拉勾网1024程序员节上的现场演讲. 我是蒋宇捷,信天创投的合伙人,之前是百度魔图的联合创始人. 我先做个自我介绍,其实每次介绍自己其实是很痛苦的事情,因为我前不久在拉勾的分享刚 ...
- 解密初、中、高级程序员的进化之路
程序员的标准与要求 初级程序员 仅能完成简单模块和项目的开发工作,难以胜任复杂模块的开发.通常是入行不久, 1 年及以下工作经验的同学. 能力要求 熟悉前端基础知识如 HTML.JS.CSS . 能够 ...
- 解密初、中、高级程序员的进化之路(前端)
序员的标准与要求 初级程序员 仅能完成简单模块和项目的开发工作,难以胜任复杂模块的开发.通常是入行不久, 1 年及以下工作经验的同学. 能力要求 熟悉前端基础知识如 HTML.JS.CSS . 能够使 ...
- 解密Android初、中、高级程序员的进化之路
程序员的标准与要求 初级程序员 仅能完成简单模块和项目的开发工作,难以胜任复杂模块的开发.通常是入行不久, 1 年及以下工作经验的同学. 能力要求 有良好的JAVA基础,熟练掌握面向对象思想. 熟练掌 ...
- 两个程序员的泰国普吉岛之行
十一长假后,我和女朋友一起去了普吉岛游玩(作为两个程序员,不能每天敲代码,也应该放松下自己),玩的很Happy,也是我们第一次出国,所以更带有许多兴奋.也许是由于玩的太High,导致回家后的第二天,就 ...
- Java内存分析1 - 从两个程序说起
这次看一些关于JVM内存分析的内容. 两个程序 程序一 首先来看两个程序,这里是程序一:JVMStackTest,看下代码: package com.zhyea.robin.jvm;public cl ...
- java可用于开发两类程序_此内容适合初学者java基础知识 第一章
(一)Java 可用来生成两类程序:应用程序(Application). 小应用程序( Applet ) . (二)Java 既是一种解释执行的语言,也是一种编译执行的语言 (三)Java技术体系 1 ...
- Python输入账号密码判断是否正确并输出,典型案例-百钱买百鸡的两个程序代码
目录 前 一.输入账号密码判断是否正确并输出 1.实现的功能 2.代码程序 3.运行截图 二.典型案例-百钱买百鸡 1.实现的功能 2.代码程序 3.运行截图 前言 1.因多重原因,本博文由两个程序代 ...
最新文章
- AWS 发布了新的负载均衡器 ALB
- 若依框架二次开发中的坑
- 控件setVisible为false会导致控件被移除
- Flask蓝图使用的方法
- python canvas画弧度_超清字符画——Python代码
- 机器学习LDA——实验报告
- 计算机绘图说课视频,机械图识读与计算机绘图说课PPT课件.ppt
- 什么叫做镶件?什么情况下需要做镶件?模具做镶件有什么缺陷?
- 大疆的这个可编程教育机器人,可真不是个一般的机器人
- 大学英语B116-写作
- Mariadb数据库
- linux时间设置与同步--NTP
- Touch ID回归,为用户对苹果最期待功能
- 计算机无线网怎么安装教程,全民wifi驱动怎么安装_电脑安装全民wifi驱动教程
- 虚拟机中的ubuntu怎么设置1920X1080分辨率
- 信息隐藏技术综述-学习笔记
- 2022-2028年中国担保贷款行业市场全景调查及投资潜力研究报告
- 凯撒密码---最简单的加密方式之一
- springMVC文件上传
- Linux_正则表达式与文件格式化处理详解《鸟哥的Linux私房菜》学习笔记(极其详细,看完这篇必学会)
热门文章
- Alpa: Automating Inter- and Intra-Operator Parallelism for Distributed Deep Learning阅读笔记
- 面试知识点梳理一:概率论和线性代数
- OAF开发基本知识点
- 窥探SQL: 2.基础查询与排序
- iOS_33_音频转换
- 1小时销量突破50万台!小金刚Redmi Note 10系列力创首销新纪录
- wsimport 无法读取wsdl文档,unknown extensibility element or attribute “EndpointReference“
- ICPC Latin American Regional – 2017 B题(模拟+思维)
- 软件测试周刊(第73期):每个人都有一个觉醒期,但觉醒的早晚决定个人的命运。
- keil5 中的wraing:no previous prototype SystemInit