当前位置: 首页 > news >正文

温州市建设安监局网站一级消防工程师考试通过率多少

温州市建设安监局网站,一级消防工程师考试通过率多少,深圳宝安高端网站建设报价,新潮远网站建设文章目录 前言正文重叠 IO如何理解重叠IO#xff1a;创建重叠IO重叠IO操作的返回值如何确认IO操作的结果 IOCP比重叠IO多了什么IOCP的流程IOCP和EPOLL的比较 参考 前言 提起IO复用#xff0c;大部分人首先接触的都是Select、Poll、Epoll#xff0c;但是在不同的系统中… 文章目录 前言正文重叠 IO如何理解重叠IO创建重叠IO重叠IO操作的返回值如何确认IO操作的结果 IOCP比重叠IO多了什么IOCP的流程IOCP和EPOLL的比较 参考 前言 提起IO复用大部分人首先接触的都是Select、Poll、Epoll但是在不同的系统中 往往有不同的高性能IO复用模型比如Windows中就提供了IOCPI/O Completion Port/完成端口。 IOCP是一个异步的IO复用模型应用程序只需要把IO请求投递给内核具体的操作会由内核来执行应用程序只需要获取执行结果就行了 。这一点上来看性能是非常好的。 我在学习IOCP这篇文章用于整理搜集到的资料便于对IOCP进行理解。 这里没有实现任何我自己的代码以后会参考Windows Socket五种I/O模型来实现代码。 正文 重叠 IO IOCP是基于重叠IO来实现的。所以学习IOCP必须先了解重叠IO。 如何理解重叠IO 同一线程内部向多个目标传输或从多个目标接收数据引起的I/O重叠现象称为“重叠I/O”。为了完成这项任务调用的I/O函数应立即返回因此前提条件是异步I/O。 而且为了完成异步I/O调用的I/O函数应以非阻塞模式工作 Windows中重叠I/O的重点并非I/O本身而是如何确认I/O完成时的状态 ———————————————— 网络编程-重叠I/O模型 我们socket的操作本质上都是字符串的拷贝复制重叠IO是windows提供的一种异步读写文件的机制将读的指令以及我们的buffer投给操作系统然后函数直接返回操作系统独立开个线程将数据复制进咱们的buffer数据复制期间我们就可以去做其他事即读写过程变成了异步可以同时投递多个读写操作。 ———————————————— windows socket网络编程五重叠IO模型 创建重叠IO 首先创建支持重叠IO的socket需要把WSASocket()的最后一个参数dwFlags设置为WSA_FLAG_OVERLAPPED。 WSASocket(PF_INET, SOCK_STREAM, 0, NULL, 0, WSA_FLAG_OVERLAPPED);如果想要对Socket进行异步操作需要地道用WSAAccept、WSASend等WSA函数。 重叠IO操作的返回值 当我们对一个重叠IO进行read/write/send/recv时返回值是ERROR_IO_PENDING时不是发生了错误而是系统接收了这个IO操作的投递过一段时间系统才会结束IO操作。 如何确认IO操作的结果 有两种方式 等候事件 我们在进行重叠IO的异步操作时需要指定一个WSAOVERLAPPED对象。例如 evObj WSACreateEvent();memset(overlapped, 0, sizeof(overlapped));overlapped.hEvent evObj;dataBuf.len strlen(msg) 1;dataBuf.buf msg;if (WSASend(hSocket, dataBuf, 1, sendBytes, 0, overlapped, NULL) SOCKET_ERROR){if (WSAGetLastError() WSA_IO_PENDING){puts(Background data send);WSAWaitForMultipleEvents(1, evObj, TRUE, WSA_INFINITE, FALSE); // 完成I/O时evObj将变为signaled函数返回WSAGetOverlappedResult(hSocket, overlapped, sendBytes, FALSE, NULL);}else{ErrorHandling(WSASend() error);}} ——————————————— 原文链接https://blog.csdn.net/beilizhang/article/details/124586262给overlapped.hEvent关联一个事件然后等候事件有信号再用WSAGetOverlappedResult()检查IO操作结果。 添加回调函数 这种方式不必设置overlapped.hEvent把他保持zeromemery状态就可以。 当IO操作完成会自动调用回调函数CompRoutine()。 memset(overlapped, 0, sizeof(overlapped));dataBuf.len BUF_SIZE;dataBuf.buf buf;evObj WSACreateEvent();if (WSARecv(hRecvSock, dataBuf, 1, recvBytes, flags, overlapped, CompRoutine) SOCKET_ERROR) // 必须指定第六个参数WSAOVERLAPPED结构体变量的地址值但不必为了hEvent成员创建事件对象{if (WSAGetLastError() WSA_IO_PENDING){puts(Background data receive);}}———————————————— 原文链接https://blog.csdn.net/beilizhang/article/details/124586262IOCP比重叠IO多了什么 IOCP比重叠端口多了一个投递队列应用程序把要进行的IO操作添加到队列中。 然后通过一个GetQueuedCompletionStatus()接口来获取投递的IO操作的结果。IOCP可以指定最多使用多少线程来执行异步的IO操作。 1 完成端口IOCP模型 一个完成端口实际上就是一个通知队列操作系统把已经完成的重叠I/0请求的通知放到队列中。完成端口会充分利用Windows最复杂的内核对象来进行I/O的调度属于异步IO是用于C/S通信模式中性能最好的网络通信模型。 2.完成端口IOCP模型的原理 完成端口创建几个线程系统CPU的数目、避免线程上下文切换等到用户请求的时候就把这些请求都加入到一个公共消息队列中去然后这几个线程就排队从消息队列中取出消息并加以处理这种方式就很优雅的实现了异步通信和负载均衡的问题因为它提供了一种机制来使用几个线程“公平的“处理来自于多个客户端的输入/输出并且线程如果没事干的时候也会被系统挂起不会占用CPU周期这个关键的作为交换的消息队列就是完成端口。 ———————————————— O模型之完成端口completion portwindows上性能最好 IOCP的流程 以下四个步骤来自于Windows 下 IOCP 的简单使用其中有各个步骤的示例代码。 初始化 Socket 和 IOCP 这里初始化的是用于listen的socket需要对socket进行bind() 和listen() 启动 Accpet 处理线程 这里的Accept没有投递给IOCP来处理而是在线程中调用Accept()来接收连接然后再把连接socket绑定到IOCP HANDLE上。 创建IOCP和把socket绑定到IOCP HANDLE上都是用CreateIoCompletionPort()只是参数不同。 启动 Event 处理线程 事件处理的线程中需要不断调用GetQueuedCompletionStatus()来获取IO的处理结果。 没有收到结果是GetQueuedCompletionStatus()会阻塞。 这个API的第2个参数lpNumberOfBytesTransferred是在完成的 I/O 操作中传输的字节数 当它为-1时代表收到 PostQueuedCompletionStatus() 发出的退出指令。 设计一个靠谱的线程退出方式 通过收到 PostQueuedCompletionStatus()第2个参数设置为-1来发出的退出指令。 IOCP和EPOLL的比较 Epoll 是Linux系统下的模型IOCP 是Windows下模型Epoll 是同步模型(也看到有人说是异步的)在有事件时触发时返回可处理的消息由应用程序进行处理。IOCP是异步模型处理完IO事件后返回结果通知。 参考 Windows Socket五种I/O模型 I/O 完成端口-learn.microsoft Windows 下 IOCP 的简单使用 技术派-epoll和IOCP之比较 网络编程-重叠I/O模型 揭开重叠IO的神秘面纱 windows socket网络编程五重叠IO模型 windows socket网络编程六完成端口模型 Windows下IOCP踩过的一些坑 O模型之完成端口completion portwindows上性能最好
http://www.zqtcl.cn/news/416646/

相关文章:

  • 东莞建网站公司哪个好陕西手机网站建设公司
  • 网站系统里不能打印西安哪有学做淘宝网站
  • 哈尔滨建站模板大全天猫购买
  • 去后台更新一下网站百度最新版下载
  • 盐城网站开发教育建设网站
  • 目前网站开发有什么缺点广东品牌网站建设968
  • 东营做网站优化哪家好简单网站的制作
  • c可以做网站么网站为何不显示百度商桥对话框
  • 音乐网站用dw怎么做怎么做自己的网站教程
  • 网站换域名后需要多长时间才能收录恢复正常做文案公众号策划兼职网站
  • 丹阳做网站的公司重庆建设医院网站
  • 罗湖网站设计费用在线设计平台行业环境
  • 舟山市普陀区建设局网站淘宝怎样优化关键词
  • 网页上做ppt的网站好花西子网络营销案例分析
  • 网站设计说明书主要有什么成都企业网站seo
  • 免费素材下载网站网站建设进度时间表
  • 网站做关键词首页什么是网络营销?如何理解它的产生和把握它的特点?
  • centos做网站扬州市邗江区城乡建设局网站
  • 宁波网站建设模板制作企业做网站的作用
  • 南通网站快速收录禁止wordpress自动更新
  • 济南做网站最好的公司做一电影网站怎么赚钱吗
  • 中国城市建设网站宿州网站建设零聚思放心
  • 佛山网站免费制作struts2 做的网站
  • 做网站需要了解什么软件电商网站建设方案道客巴巴
  • 网站开发语言用什么好网站好坏怎么分析
  • 镇江制作网站的dw新建站点
  • 如果将域名指向网站东营网站建设收益高
  • 沈阳seo网站推广优化c2c网站的功能
  • 网站设计深圳云南制作网站的公司
  • 广州的网站建设公司对网络平台的优化有哪些建议