CIOCPServer类有多个IO工作线程在完成端口上处理异步IO调用。当特定的网络事件发生时,这些线程调用CIOCPServer类的虚函数,添加自己想要的代码。
CIOCPServer执行的步骤:
1 创建监听线程
2 创建IO工作线程
3 服务启动期间,监听线程一直运行,为IO工作线程提供服务
知识点:异步IO
异步IO的概念和同步IO相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件完成后,通过状态、通知和回调来通知调用者。在一个CPU密集的应用中,有一些需要处理的数据可能放在磁盘上。预先知道这些数据的位置,所以预先发起异步IO请求。等到真正需要把这些数据的时候,再等待异步IO完成。使用了异步IO,在发起IO请求到实际使用这些数据的时间内,程序还可以继续做其它事情。异步IO的实现比较容易。异步传输常用于低速设备。我们使用的WINDOWS PostMessage是异步的,函数调用直接返回,WINDOWS SendMessage 、WINDOWS SOCKET 都是同步IO,会阻塞,直到调用返回。