事件驱动模型
传统编程线性模型
开始 ----> 代码块A ---->代码块B ---->代码块C 。。。。。。 结束
每个代码块都有各自实现的功能,按照条件语句顺序判断执行,每一次运行顺序或许都不同,它的控制流程是由获取的数据所和判断语句所决定的。
事件驱动程序模型
开始 ----> 初始化 ----> 等待
事件驱动器启动后,在等待事件触发,然后做出相应的程序执行效果。触发事件包括:输入信息、鼠标、敲击键盘、内部定时器等
IO模型
synchronous 同步IO
一个进程在执行某个任务时,另外一个进程必须等待其执行完毕,才能继续执行
所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不会返回。按照这个定义,
其实绝大多数函数都是同步调用。但是一般而言,我们在说同步、异步的时候,
特指那些需要其他部件协作或者需要一定时间完成的任务。
asynchronous 异步IO
当一个异步功能调用发出后,调用者不能立刻得到结果
当该异步功能完成后,通过状态、通知或回调来通知调用者。如果异步功能用状态来通知,
那么调用者就需要每隔一定时间检查一次,效率就很低(有些初学多线程编程的人,总喜欢用一个循环去检查某个变量的值,这其实是一 种很严重的错误)。
如果是使用通知的方式,效率则很高,因为异步功能几乎不需要做额外的操作。至于回调函数,其实和通知没太多区别。
blocking 阻塞IO
调用结果返回之前