当前位置: 首页 > 科技观察

两个程序的悲惨进化之旅

时间:2023-03-13 03:58:10 科技观察

后记:我用这幅漫画来描述进程、线程、协程等基本概念的来龙去脉,这个技术为什么会出现,解决什么问题。其实计算机发展到今天,本质上并没有什么变化,就是计算能力越来越快,存储容量越来越大。一方面,多进程的出现是因为我们需要充分利用CPU的能力,因为它太快了,比硬盘快几百万倍。遇到硬盘操作时,千万不能让它在那里等待、闲置。请务必切换到另一个程序。另一方面是人们需要电脑“同时”运行多个程序:边听音乐边上网。线程的出现主要是为了提高响应能力。漫画中给出了一个界面无法响应的例子。服务器端也会出现同样的问题。多个用户请求被发送到服务器。当一个请求在等待IO操作时,其他请求可以交由其他线程处理。但是,如果线程过多,创建和切换的开销会很大,所以必须考虑多路复用,形成线程池。通过协同调度,协程避免了多线程编程中各种烦人且容易出错的问题:锁定、通知和阻塞。【本文为专栏作家“刘欣”原创稿件,转载请通过作者微信获取授权公众号coderising】点此查看该作者更多好文