java-IO-多路复用机制

这篇博客介绍了Linux中IO多路复用机制,包括文件描述符、用户空间与内核空间的区别以及缓存I/O。重点讨论了select、poll和epoll三种机制的工作原理和优缺点,强调epoll在处理大量并发连接时的高效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 文件描述符(file descriptor)
  1. Linux中,每打开一个文件都有一个小的整数与之对应,就是文件描述符!
  2. 内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。
  3. 文件描述符是linux里面的叫法,windows里面有类似用来描述文件的叫文件句柄
  • 用户空间 / 内核空间
  1. 操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。
  2. 为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操作系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间。
  • 缓存I/O
  1. 在Linux的缓存I/O机制中,操作系统会将I/O的数据缓存在文件系统的页缓存中
  2. 即数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。
  • I/O多路复用(multiplexing)
  1. 本质:通过一种机制(系统内核缓冲I/O数据),让单个进程可以监视多个文件描述符,一旦某个描述符就绪(一般是读就绪或写就绪),能够通知程序进行相应的读写操作<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值