@JunQiu
2018-09-18T17:25:56.000000Z
字数 554
阅读 1417
消息、事件驱动
summary_2018/06
pocc(计组)
1、日常工作
2、技术学习
消息驱动机制
- 通过消息队列的循环来处理交互
- Windows是一个消息(Message)驱动式系统。Windows消息提供应用程序与应用程序之间、应用程序与Windows系统之间进行通信的手段。应用程序想要实现的功能由消息来触发,并且靠对消息的响应和处理来完成。
事件驱动机制
- 计算机程序设计模型。模型的程序运行流程是由用户的动作(如鼠标的按键,键盘的按键动作)或者是由其他程序的消息来决定的。
- 相对与非事件程序设计而言(非事件驱动的程序,在需要等待某个条件触发时,会不断地检查这个条件,直到条件满足,浪费cpu),程序运行流程由程序员决定,而事件驱动更体现了交互性
- 着重于弹性化和异步处理(比如node事件机制)
两者的区别
- 核心思想十分相似,可以理解为发布/订阅模式模式,触发实现,当然也会有一些区别
- 事件模式耦合高,同模块内好用;消息模式耦合低,跨模块好用。
- 事件是侵入式设计,霸占你的主循环;消息是非侵入式设计,将主循环该怎样设计的自由留给用户。(???)
- 事件模式可以看作消息模式的进一步封装(如win32的GetMessage,耦合度极低,适合多种语言,当外层事件发生改变的时候,只需改变外层事件即可)