查看原文
其他

两个程序悲催的进化旅程

码农翻身刘欣 码农翻身 2021-04-27

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

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

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

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


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



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

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存