重叠IO操作可以通过File Handle,Event handle(WaitFor....)和APC(Routine),还有Complete Port(Queue Wait)来实现。
特别是在设计服务器程序时,为了达到scalabe目的,一般系统构架使用Complete port + 多线程 + Overlapped I/O,步骤如下:
1)创建一个I/O Complete port.
2)绑定File Handle到Complete port
3)创建多个线程。
4)让线程在Complete Port上等待。
5)开始对那个File Handle发出一些Overlapped I/O 请求。
比如说socket handle,也只能使用ReadFile和WriteFile函数了,因为他们才能发出Overlapped操作。而socket的标准函数recv和send是不行的,他们没有异步I/O的能力哦。
阅读(1211) | 评论(0) | 转发(0) |