io多路复用select
时间: 2023-08-18 20:15:12 浏览: 127
select io多路复用
IO多路复用中的select是一种常见的实现方式,它可以同时监听多个IO事件,一次系统调用就能判断所有IO的可读写状态。select函数的原型为int select(int maxfdp, fd_set *readset, fd_set *writeset, fd_set *exceptest, struct timeval *timeout)。其中,maxfdp是需要监听的最大文件描述符加1,readset、writeset和exceptest分别是需要监听的可读、可写和异常事件的文件描述符集合,timeout是超时时间。select函数会阻塞直到有一个或多个文件描述符就绪,或者超过指定的超时时间。然而,select在文件数量庞大、IO流量频繁的情况下性能会下降明显,因此不适合这种场景。\[2\]
#### 引用[.reference_title]
- *1* *3* [【网络编程】IO 多路复用 select](https://blog.csdn.net/weixin_38333830/article/details/120506096)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v4^insert_chatgpt"}} ] [.reference_item]
- *2* [IO多路复用之select详解](https://blog.csdn.net/gamekit/article/details/106271528)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v4^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文