【网络编程】I/O完成端口模型详解

您所在的位置:网站首页 端口的英语怎么说 【网络编程】I/O完成端口模型详解

【网络编程】I/O完成端口模型详解

2024-07-11 21:27| 来源: 网络整理| 查看: 265

简答粗暴——完成端口例子: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