事件驱动模型,最为经典的就是Reactor模型和Proactor模型

    C++网络方面用的比较多的库是libevent和boost.asio,两者都是跨平台的

    1. 其中libevent是基于Reactor实现的
    2. 而boost.asio是基于Proactor实现的

    Reactor和Proactor模式的主要区别就是真正的操作(如读/写)是由谁来完成的

    1. Reactor中需要应用程序自己读取或者写入数据
    2. 而在Proactor模式中,应用程序不需要进行实际的读/写过程,操作系统会读取缓冲区或者写入缓冲区到真正的IO设备,应用程序只需要从缓冲区读取(操作系统已经帮我们读好了)或者写入缓冲区(操作系统会帮我们写入)即可。在Proactor模式中,用户发起异步操作之后就返回了,让操作系统去处理请求,然后等着回调到完成事件函数中处理异步操作的结果。