select/poll中 l客户端的链接是保存在进程中吗,然后每次通过系统调用传给内核进行链接的状态检查???
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在传统的select/poll模型中,**客户端的链接描述符(文件描述符)**确实是由应用程序管理并保存在进程中。当需要检查这些连接的状态时,如是否可读、可写等,应用程序会将这些描述符集合通过系统调用(如select()
或poll()
)传递给内核。内核随后会遍历这个集合,检查每个描述符的状态,并根据结果返回给应用程序,告知哪些描述符已经就绪,可以进行读写操作。
简而言之,是的,客户端的链接信息以描述符形式存储于进程中,利用select/poll系统调用,进程委托内核检查这些描述符所代表的连接状态,而无需进程本身直接与每个连接进行低级交互,从而提高了处理大量并发连接的效率。
请注意,此解释基于经典的操作系统原理和网络编程模型;具体实现可能因操作系统、库函数版本以及特定的应用程序设计而有所不同。