选择模型:
异步选择模型
事件选择模型
用事件通知实现的重叠I/O
用完成例程实现的重叠I/O
http://blog.chinaunix.net/u2/61062/showart_2138327.html
完成端口
(2)线程数
除了异步选择以外,其他模型至少需要2个线程。一个主线程和一个辅助线程。同样的,如果连接数大于64,则选择模型、事件选择和用事件通知实现的重叠I/O的线程数还要增加。
(3)实现的复杂度
我的个人看法是,在实现难度上,异步选择<选择<用完成例程实现的重叠I/O<事件选择<完成端口<用事件通知实现的重叠I/O
(4)性能
由于选择模型中每次都要重设读集,在select函数返回后还要针对所有套接字进行逐一测试,我的感觉是效率比较差;完成端口和用完成例程实现的重叠I/O基本上不涉及全局数据,效率应该是最高的,而且在多处理器情形下完成端口还要高一些;事件选择和用事件通知实现的重叠I/O在实现机制上都是采用WSAWaitForMultipleEvents,感觉效率差不多;至于异步选择,不好比较。所以我的结论是:选择<用事件通知实现的重叠I/O<事件选择<用完成例程实现的重叠I/O<完成端口
另外的一个我的总结的地址是:
网络编程模型综述
http://blog.chinaunix.net/u2/61062/showart_2155293.html
阅读(1530) | 评论(0) | 转发(0) |