IOCP I/O完成端口(了解)】的更多相关文章

IOCP(I/O Completion Port,I/O完成端口)是性能最好的一种I/O模型.它是应用程序使用线程池处理异步I/O请求的一种机制.在处理多个并发的异步I/O请求时,以往的模型都是在接收请求是创建一个线程来应答请求.这样就有很多的线程并行地运行在系统中.而这些线程都是可运行的,Windows内核花费大量的时间在进行线程的上下文切换,并没有多少时间花在线程运行上.再加上创建新线程的开销比较大,所以造成了效率的低下. 调用的步骤如下: 抽象出一个完成端口大概的处理流程: :创建一个完成…
相关对象 IO EndPoint, 所有支持重叠IO(overlapped IO)的设备,比如文件,Winsock,管道等. IOCP, IO完成端口内核对象,可以使用API CreateIoCompletionPort 创建.在使用该API创建IOCP的同时可以关联一个IO EndPoint,也可以在创建后再次调用该API关联其他的IO Endpoint. Thread,Windows 线程.用来响应IO完成通知.通常用来处理接受到的数据等. 一个IOCP可以关联多个IO EndPoint,但…
1.关于IOCP IOCP即IO完成端口,是一种高伸缩高效率的异步IO方式,一个设备或文件与一个IO完成端口相关联,当文件或设备的异步IO操作完成的时候,去IO完成端口的[完成队列]取一项,根据完成键(Complete Key)来判断是哪个设备或文件的操作完成,然后再根据实际情况进行处理. 2.相关API 和 数据结构   将一个已完成的IO通知追加到IOCP的[完成队列]中 BOOL   PostQueuedCompletionStatus( HANDLE    hCompletionPort…
http://blog.csdn.net/sodme/article/details/213995 ———————————————————————————————————————————————————— 本文作者:sodme 本文出处:http://blog.csdn.net/sodme版权声明:本文可以不经作者同意任意转载,但转载时烦请保留文章开始前两行的版权.作者及出处信息. QQ游戏于前几日终于突破了百万人同时在线的关口,向着更为远大的目标迈进,这让其它众多传统的棋牌休闲游戏平台黯然失色…
转载自:http://morton5555.blog.163.com/blog/static/976407162012013112545710/# QQ游戏于前几日终于突破了百万人同时在线的关口,向着更为远大的目标迈进,这让其它众多传统的棋牌休闲游戏平台黯然失色,相比之下,联众似乎已经根本不是QQ的对手,因为QQ除了这100万的游戏在线人数外,它还拥有3亿多的注册量(当然很多是重复注册的)以及QQ聊天软件900万的同时在线率,我们已经可以预见未来由QQ构建起来的强大棋牌休闲游戏帝国. 服务器程序…
线程池概述 由系统维护的容纳线程的容器,由CLR控制的所有AppDomain共享.线程池可用于执行任务.发送工作项.处理异步 I/O.代表其他线程等待以及处理计时器. 线程池与线程 性能:每开启一个新的线程都要消耗内存空间及资源(默认情况下大约1 MB的内存),同时多线程情况下操作系统必须调度可运行的线程并执行上下文切换,所以太多的线程还对性能不利.而线程池其目的是为了减少开启新线程消耗的资源(使用线程池中的空闲线程,不必再开启新线程,以及统一管理线程(线程池中的线程执行完毕后,回归到线程池内,…
线程 Thread 在总结线程池之前,先来看一下.NET线程. .NET线程与操作系统(Windows)线程有什么区别? .NET利用Windows的线程处理功能.在C#程序编写中,我们首先会新建一个线程对象System.Threading.Thread,并为其指定一个回调方法:当我们调用线程对象的Start方法启动线程时,会创建一个操作系统线程来执行回调方法..NET中的线程实际上等价于Windows系统线程,都是CPU调度和分配的对象. 前台线程和后台线程 .NET把线程分为前台线程和后台线…
看到一个问题,说如何保持5000-10000+的健壮的socket服务. 初学者肯定是会把每个连接都开一个线程来监听.这很浪费资源 通常只会(动态地)占用几个线程就能保持3000个长连接会话了.“为每个监听对象开一个新的线程”这是设计错误.你可以使用NetworkStream的异步Read,在没有消息的时候无需阻塞在什么线程里. 据不同的操作系统,多线程的约束条件也不同.当你发现工作线程超过1000个,或者IOCP(IO完成端口)线程超过800个,就应该赶紧断掉服务器进行维护了.首先要有一个意识…
目录 NIO-Channel 目录 前言 什么是Channel 通道类型 如何使用 ServerSocketChannel SocketChannel FileChannel 总结 相关文献 NIO-Channel 目录 NIO-概览 NIO-Buffer NIO-Channel NIO-Channel源码解析 前言 本来是想学习Netty的,但是Netty是一个NIO框架,因此在学习netty之前,还是先梳理一下NIO的知识.通过剖析源码理解NIO的设计原理. 本系列文章针对的是JDK1.8.…
Node.js 简介 Node.js是一个Javascript运行环境(runtime),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装.Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好. V8引擎执行Javascript的速度非常快,性能非常好. Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用. Node.js 使用事件驱动, 非阻塞I…