【网络编程】I/O完成端口模型详解 |
您所在的位置:网站首页 › 端口的英语怎么说 › 【网络编程】I/O完成端口模型详解 |
简答粗暴——完成端口例子:http://download.csdn.net/download/fzuim/9968393 首先摘抄一段《Windows核心编程》I/O完成端口的一段话:Windows的设计目标是一个安全的、健壮的操作系统,能够运行各种各样的应用程序来为成千上万的用户服务。回顾历史,我们能够采用以下两种模型之一来架构一个服务应用程序。 串行模型:一个线程等待一个客户发出的请求。当请求到达的时候,线程会被唤醒并对客户请求进行处理。 并行模型:一个线程等待一个客户请求,并创建一个新的线程来处理请求。当新线程正在处理客户请求的时候,原来的线程会进入下一个循环并等待另一个客户请求。当处理客户请求的线程完成整个处理过程的时候,改线程就会终止。 说的通俗一点就是,并发模型每来一个客户我们就要创建一个线程处理,如果有500个客户请求到来,我们就得创建500个线程。 使用并发模型的服务器程序性能并不能比预期的高,许多线程同时并发执行,Windows内核在各可运行的线程之间进行上下文切换花费太多的时间,以至于各线程没有多少CPU时间来完成任务。Microsoft为了解决这个问题,创建了I/O完成端口内核对象。 创建一个I/O完成端口: HANDLE WINAPI CreateIoCompletionPort( __in HANDLE FileHandle, __in_opt HANDLE ExistingCompletionPort, __in ULONG_PTR CompletionKey, __in DWORD NumberOfConcurrentThreads );
//! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |