1. 程式人生 > >從另一個角度看事件驅動和協程

從另一個角度看事件驅動和協程

有一些新的想法,可能大部分的軟體架構就是人的活動的一種抽象。比如事件驅動,就可以從人的日常活動中提煉出來,設想一個禮拜天你在家裡打遊戲/上網,這個時候你媽媽打電話過來說外面下雨了,讓你去收衣服,這就是一個典型的事件驅動,你這個時候去收衣服,就是執行了回撥函式,如果不去收繼續打遊戲,就是出了BUG。。硬體層面的事件驅動體現在中斷,當有事件到來時去處理,比如網絡卡接受到包,引起一箇中斷,將包放入tcp協議棧處理。而軟體層面的事件驅動就體現在非同步回撥。
至於協程,不知道大家小時候有沒有參加過數學競賽,做過一類題規劃時間的題:

燒一壺水要8分鐘,灌開水要1分鐘,取牛奶和報紙要5分鐘,整理書包要6分鐘,為了儘快做完這些事,怎樣安排才能使時間最少?最少需要幾分鐘?


這類問題都屬於統籌問題