摘要: 本章回答了如下几个问题: ◆什么是Overlapped I/O?为什么需要Overlapped I/O?如何让数据传输支持Overlapped I/O? ◆数据传输结束后,Win32提供了哪些方式对用户进行通告,以便进行适当的善后? ◆影响线程优先级的因素有哪些?如何获取或设置进程线程优先级?优先级的改变容易带来哪些问题?又该如何应对? ◆什么是被激发的文件句柄?什么是被激发的事件?什么是异步进程调用(APCs)?这些方式各是如何实现Overlapped I/O的?各有何优缺点? ◆使用Overlapped I/O的初衷是使“受制于I/O的程序”中获得高效率。但是否是各种情况下Overlapp 阅读全文
posted @ 2014-04-11 16:43 与你相随 阅读(342) 评论(0) 推荐(0) 编辑
摘要: IOCP模型总结(转)IOCP(I/O Completion Port,I/O完成端口)是性能最好的一种I/O模型。它是应用程序使用线程池处理异步I/O请求的一种机制。在处理多个并发的异步I/O请求时,以往的模型都是在接收请求是创建一个线程来应答请求。这样就有很多的线程并行地运行在系统中。而这些线程都是可运行的,Windows内核花费大量的时间在进行线程的上下文切换,并没有多少时间花在线程运行上。再加上创建新线程的开销比较大,所以造成了效率的低下。调用的步骤如下:抽象出一个完成端口大概的处理流程:1:创建一个完成端口。2:创建一个线程A。3:A线程循环调用GetQueuedCompletion 阅读全文
posted @ 2014-04-11 13:37 与你相随 阅读(312) 评论(0) 推荐(0) 编辑