首页  >   经验  >   IO完成端口分析:2 出现并使用广泛的原因分析

IO完成端口分析:2 出现并使用广泛的原因分析

查看 codexia 的博客 2015-06-25 00:00:26 1244
IO   完成   端口  
手机阅读 | 转发赚积分
手机收藏 | 分享给好友
简介IO完成端口就集中了异步、负载均衡、并发优化、简化编程、降低用户程序维护成本的优点于一体,得到了大家的认可。所以也是使用非常广泛的。
    在《IO完成端口分析:解惑1--基本概念辨析》文中已经介绍了IO完成端口的基本概念,没看的先看看吧。
    IO完成端口是一个非常不错的东西,所以,好在哪里,我们需要了解。不然,我们也没法领略到它的精华。先看到它的好处,最后再跟大家讲讲IO完成端口的运作机制。当然本篇只是简要的讲述运作机制,大家从整体上对它有个把握,然后才好进一步深入,否则只会越来越困惑。
    IO完成端口应用在服务器程序中,用来处理大量的用户请求。所以,也是应用在网络开发中。在网络开发中,多数是通过异步执行的。这里简单说一下同步和异步的概念。同步异步的主体是线程,同步指的是这个线程的执行方式。如果说,线程发出调用,这个调用会耗时比较长,通常IO就是典型的代表。如果线程等待调用执行完成然后继续向下执行,那么这个线程的执行顺序就是线性的,连续的。这样的线性连续的执行就是同步。而多个线程的同步,其实也是维持一个操作的线性执行的过程。所以,可以将同步理解为线性执行任务的过程。只不过,同步会带来等待,等待就会带来性能损失。何谓损失,就是CPU不能时刻执行有效的任务。在那里空等就是浪费性能。当然,有一种办法就是挂起线程,让其他线程运行。只不过,这个时候,你的线程不能执行,你的程序性能不好而已。对于程序来说,说性能问题,当然指你的程序的性能。所以,为了提高性能,就产生了异步的概念。这个异步就让线程执行某个任务不是线性的了。当线程请求一个IO读取数据,读完数据后,才能对数据分析。但是数据没来,也不能空等着,然后就去执行其他一些操作,这样也弥补了性能损失,实际上还是
1.微信扫码
2.点击按钮,粘贴命令
自动刷新 手动刷新
命令:rd 13H/) 复制
提示:如果您发送了命令,自动刷新会展开全文。自动刷新最多60秒,超过60秒请点击手动刷新。
创作不易,汗水不止!为防止劳动果实被爬虫窃取,开启了反爬机制,需要您发送命令继续阅读。取关会再次出现此提示。一段时间后出现此提示,请再次发送即可。如有问题,请加客服微信Freeme007处理。感谢您的理解。
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
文章标题:IO完成端口分析:2 出现并使用广泛的原因分析
文章地址:http://www.cjjjs.com/article/62520152600540
转载到个人博客,请在文末带上右侧内容(含超链接):本文转载自:IO完成端口分析:2 出现并使用广泛的原因分析
收藏 0 点赞 0
公众号
微信赞赏
支付宝赞赏
领支付宝大红包
QQ群

相关阅读

  1. IO完成端口分析:2 出现并使用广泛的原因分析 查找全网同类文章
  2. IO完成端口分析:1 基本概念辨析 查找全网同类文章
  3. VS2019创建第一个C++项目说明 查找全网同类文章
  4. mysql的max_connections过多问题解决办法 查找全网同类文章
  5. string系列:10 string和IO操作 查找全网同类文章
  6. 探讨C语言设计一个支持灵活修改参数的实现方案 查找全网同类文章
  7. Windows修改远程桌面端口3309为新端口登陆方法 查找全网同类文章
  8. Linux查看端口使用状态、关闭端口方法 查找全网同类文章
  9. HEAP CORRUPTION DETECTED 查找全网同类文章
  10. C++获取硬盘序列号、主板序列号、CPU序列号、BIOS序列号和MAC地址 查找全网同类文章
分享到:
分享文章[IO完成端口分析:2 出现并使用广泛的原因分析]到QQ空间

相关阅读

  • IO完成端口分析:2 出现并使用广泛的原因分析

    IO完成端口就集中了异步、负载均衡、并发优化、简化编程、降低用户程序维护成本的优点于一体,得到了大家的认可。所以也是使用非常广泛的。

    查找全网同类文章
  • IO完成端口分析:1 基本概念辨析

    IO完成端口是Windows中最复杂的一个内核对象,并且一些概念也容易产生误解,很多书上也没有辨析清楚这些概念,导致读者陷入一个无穷的困惑之中。本来这个内核对象就比一般的内核对象复杂的多,加之写书的人很多也没有解释清楚一些容易混淆的概念,很多读者都是一头雾水。因为比较复杂,就不一次性讲完,分几次解析,让大家慢慢消化吸收,效果会更好。我敢保证,读者看完这一系列文章后,完成端口从概念上绝对是很清晰的了。当然,后续也会介绍如何使用完成端口,这都不是事。最难的就是“解惑”,务必要仔细阅读和思考。

    查找全网同类文章
  • VS2019创建第一个C++项目说明

    VS2019相对于VS2017,在细节方面有一些地方进行里改进,让使用体验更加人性化了。现在给大家介绍一下使用VS2019创建第一个C++项目,进而熟悉下VS2019。

    查找全网同类文章
  • mysql的max_connections过多问题解决办法

    最近发现mysql一个奇怪的问题,好好的代码,运行一段时间后,数据库操作就失败了。一开始以为是操作了多个数据库,可能是数据库串了,经过检查,确实没有错。后来在Navicat工具刷新数据的时候,提示了mysql的连接数过多的问题(connections too many)。因为此前也出现过这样的问题,没想到现在又出来了。

    查找全网同类文章
  • string系列:10 string和IO操作

    C++技术网已经用心解答了用户提出的问题【C++中string和IO操作】,如还有问题,请继续在文章底部留言交流,直到完全懂了为止。

    查找全网同类文章
  • 探讨C语言设计一个支持灵活修改参数的实现方案

    你不需要事先知道这个函数声明的时候参数的类型,只是在传入参数时需要传入参数的地址,然后在函数内部按照传入时参数的类型进行逆向类型转换,就得到了正确的类型,然后就可以使用参数了。以后你要是觉得传入的类型参数不合适,想换一个函数类型,可以,只要在传入时换一个类型的变量的地址,再改一下函数内部的逆向参数类型转换就可以了。你不需要在传参时纠结参数的转换问题。在传参时相当于隐藏参数的类型的传参。

    查找全网同类文章
  • Windows修改远程桌面端口3309为新端口登陆方法

    Windows修改远程桌面登陆端口3309为新端口登陆方法,不仅要修改注册表,还有修改防火墙的入站规则的设置。服务器安全狗并不能完全实现修改远程桌面端口的修改,安全狗只是修改了注册表,防火墙需要我们手动修改。

    查找全网同类文章
  • Linux查看端口使用状态、关闭端口方法

    TCP通信程序调试经常会需要查看端口,特别是查看某一个特定的端口。然后关闭这个进程即关闭这个端口。

    查找全网同类文章
  • HEAP CORRUPTION DETECTED

    HEAP CORRUPTION DETECTED:after Normal block(#XXXX)at 0xXXXX. CRT detected that the application wrote to memory after end of heap buffer.

    查找全网同类文章
  • C++获取硬盘序列号、主板序列号、CPU序列号、BIOS序列号和MAC地址

    我们可以获取硬盘序列号、主板序列号、CPU序列号、BIOS序列号和MAC地址。通过这些信息,我们基本可以唯一确定一个计算机。本文使用C++获取硬盘序列号、主板序列号、CPU序列号、BIOS序列号和MAC地址。

    查找全网同类文章

猜您感兴趣