码迷,mamicode.com
首页 > 其他好文 > 详细

并发、非阻塞、事件驱动、上下文切换、多核在现实生活中的例子!

时间:2015-03-18 12:37:10      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

平常生活中就有很多例子可以去研究和理解并发和多线程。

比如:

做饭有几个任务(说简单点):煮饭、炒菜

同步就是,先去煮饭,等20分钟饭煮好了再去炒菜;我想现实生活中没有人去这样做,这样效率太低。

我没必要等到把饭煮熟好了再去炒菜,可以边煮饭边炒菜,并发进行;等菜炒完了,饭也煮好了;这样节省了时间,提高了效率。

这里面我们可以看到:

--并发:煮饭和炒菜是并发执行,我就是CPU(一个人单核);说明单核也能实现并发;

--IO阻塞:煮饭的电饭煲是一个相对耗时的处理动作,比如是一个网络的请求

--非阻塞IO:我CPU按下煮饭操作后就跳出来去炒菜,这个就是非阻塞的IO处理

--事件驱动:饭好了之后有一个事件通知,比如叮的一声,我CPU听到事件可以决定是否进行处理

----上下文切换和多核:如果老婆不在,则只能我自己去盛饭,需要停下炒菜的活儿。如果老婆在,我就跟老婆说饭好了,让老婆去盛饭;我喊的过程是上下文切换,老婆去盛饭是另一个CPU线程开始执行,我不用自己去做;这就是多核带来的好处


并发、非阻塞、事件驱动、上下文切换、多核在现实生活中的例子!

标签:

原文地址:http://my.oschina.net/u/184206/blog/388260

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!