两个程序悲催的进化旅程

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

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

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

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

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

【本文为51CTO专栏作者“刘欣”的原创稿件,转载请通过作者微信公众号coderising获取授权】

 

戳这里,看该作者更多好文

 

责任编辑:武晓燕 来源: 51CTO专栏
相关推荐

2014-12-12 10:01:29

程序员

2020-09-14 06:55:47

面试程序员MVC

2011-03-22 10:49:53

2019-11-28 10:55:12

项目开发公司

2013-04-17 09:57:22

2012-06-21 16:37:06

诺基亚WP8

2019-04-26 09:55:10

面试程序员动态网页

2015-06-11 10:00:06

CISO数据泄露企业安全管理

2017-04-01 09:13:48

编程语言框架

2011-08-17 10:47:02

亚马逊EBS

2015-08-13 09:19:37

2015-02-05 09:54:13

程序员

2013-07-05 10:52:07

程序员结对编程

2010-07-25 14:31:54

Telnet程序

2012-09-25 13:10:41

浏览器

2011-11-18 10:51:14

MongoDB

2021-12-16 16:20:57

GoWebSocketLinux

2011-12-20 21:02:07

苹果

2013-12-18 10:34:42

OpenMP线程

2013-05-10 09:31:06

程序员
点赞
收藏

51CTO技术栈公众号