从另一个角度看事件驱动和协程

有一些新的想法,可能大部分的软件架构就是人的活动的一种抽象。比如事件驱动,就可以从人的日常活动中提炼出来,设想一个礼拜天你在家里打游戏/上网,这个时候你妈妈打电话过来说外面下雨了,让你去收衣服,这就是一个典型的事件驱动,你这个时候去收衣服,就是执行了回调函数,如果不去收继续打游戏,就是出了BUG。。硬件层面的事件驱动体现在中断,当有事件到来时去处理,比如网卡接受到包,引起一个中断,将包放入tcp协议栈处理。而软件层面的事件驱动就体现在异步回调。
至于协程,不知道大家小时候有没有参加过数学竞赛,做过一类题规划时间的题:

烧一壶水要8分钟,灌开水要1分钟,取牛奶和报纸要5分钟,整理书包要6分钟,为了尽快做完这些事,怎样安排才能使时间最少?最少需要几分钟?
这类问题都属于统筹问题

猜你喜欢

转载自blog.csdn.net/kekefen01/article/details/84782758