Win32重叠I/O(Overlapped I/O)机制允许发起一个 *** 作,然后在 *** 作完成之后接受到信息。对于那种需要很长时间才能完成的 *** 作来说,重叠IO机制尤其有用,因为发起重叠 *** 作的线程 在重叠请求发出后就可以自由的做别的事情了。在WinNT和Win2000上,提供的真正的可扩展的I/O模型就是使用完成端口(Completion Port)的重叠I/O完成端口---是一种WINDOWS内核对象。完成端口用于异步方式的重叠I/0情况下,当然重叠I/O不一定非使用完成端口不 可,还有设备内核对象、事件对象、告警I/0等。但是完成端口内部提供了线程池的管理,可以避免反复创建线程的开销,同时可以根据CPU的个数灵活的决定 线程个数,而且可以让减少线程调度的次数从而提高性能其实类似于WSAAsyncSelect和select函数的机制更容易兼容Unix,但是难以实现 我们想要的“扩展性”。而且windows的完成端口机制在 *** 作系统内部已经作了优化,提供了更高的效率。所以,我们选择完成端口开始我们的服务器程序的 开发。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)