写作网站有哪些深圳建设工程交易平台
news/
2025/10/6 12:52:42/
文章来源:
写作网站有哪些,深圳建设工程交易平台,江门市智企互联网站建设,wordpress QQ登录注册阻塞I/O Socket设置为阻塞模式#xff0c;当socket不能立即完成I/O操作时#xff0c;进程或线程进入等待状态#xff0c;直到操作完成。如下图#xff1a; 这种模型非常经典#xff0c;也被广泛使用#xff0c;优势在于非常简单#xff0c;等待的过程中占用的系统资源微… 阻塞I/O Socket设置为阻塞模式当socket不能立即完成I/O操作时进程或线程进入等待状态直到操作完成。如下图 这种模型非常经典也被广泛使用优势在于非常简单等待的过程中占用的系统资源微乎其微程序调用返回时必定可以拿到数据 但简单也带来一些缺点程序在数据到来并准备好以前不能进行其他操作需要有一个线程专门用于等待这种代价对于需要处理大量连接的服务器而言是很难接受的 非阻塞I/O 把socket设置成非阻塞模式与阻塞模式不同的是无数据时也不会进入等待而是立即返回特定错误如下图 这种模式在没有数据可以接收时可以进行其他的一些操作比如有多个socket时可以去查看其他socket有没有可以接收的数据 实际应用中这种I/O模型的直接使用并不常见因为它需要不停的查询而这些查询大部分会是无必要的调用白白浪费了系统资源 非阻塞I/O应该算是一个铺垫为I/O复用和信号驱动奠定了非阻塞使用的基础。 I/O复用 I/O复用模型能让一个或多个socket可读或可写准备好时应用能被通知到I/O复用模型早期用select实现它的工作流程如下图 这种模型的使用场景一般有这样一个共同特点都有多个socket需要处理这样能在获取I/O事件时复用同一个等待机制。比如监听服务器既要处理监听的socket又要处理连接的socket。 I/O复用是应用场景较多的一种模式socket连接数多时大多会采用它。除了select以外I/O复用的还可以用poll、epoll、kqueuefreebsd来实现后两者在处理大量连接时性能上有很大的提高。 信号驱动 信号驱动模型是在socket准备好的时候用信号的方式进行通知然后应用程序从内核读取数据。 然而对于socketSIGIO触发意味着多种可能对于UDP有两种对于TCP则有7种要想区分是何种操作引起的signal都是一件困难的事情所以这种模型很少被实用直到内核2.3起引入了POSIX RT-Signal机制以后这一现象得到些许改善。 异步I/O 在标准Unix下异步I/O是由“aio_XXX”接口提供的它把一个信号和值与每一个I/O操作关联起来。异步I/O是POSIX 1003.1b实时标准的扩展也属于Single Unix Specificationversion 2。 几年前Ben LaHaise实现了Linux AIO合并到了2.5.32的内核中在2.6时它正式成为标准特性。然而令人遗憾的是它目前还不支持对socket的操作相信不久以后会完善起来。 异步I/O的模型与I/O复用和信号驱动颇有些相似但最大的区别是信号到达时I/O操作已经由内核完成应用只需要继续处理数据就好 POSIX的AIO的操作流程如下 评论这张
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/929331.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!