异步 同步 回调

时间:2021-12-11 04:17:12
  1. 事件处理上的同步,异步
    1. 回调函数在事件处理上,属于同步;回调函数用于层间协作,上层将回调函数安装在下层,调用。
    2. 异步调用在应用程序框架中具有广泛的应用,并且特指多线程情况下。它同Windows的消息循环机制,消息响应,消息队列,事件驱动机制以及设计模式中的观察者模式等都是紧密相关的。 在单线程方式下,计算机是一台严格意义上的冯·诺依曼式机器,一段代码调用另一段代码时,只能采用同步调用,必须等待这段代码执行完返回结果后,调用方才能继续往下执行。有了多线程的支持,可以采用异步调用,调用方和被调方可以属于两个不同的线程,调用方启动被调方线程后,不等对方返回结果就继续执行后续代码。被调方执行完毕后,通过某种手段通知调用方:结果已经出来,请酌情处理。
  2. IO模型的同步,异步
    1. 同步:等待网络io操作完成后返回
      1. reactor模型;select,poll,epoll,同步的事件驱动
    2. 异步:不等待io操作完成,就返回
      1. procator模式;iocp(windows),linux底层没有真正实现异步io。