开发者社区> 问答> 正文

高并发IO读写的原理是什么?

高并发IO读写的原理是什么?

展开
收起
鲁花花生油 2021-10-29 15:25:13 437 0
来自:华章出版社
1 条回答
写回答
取消 提交回答
  • 大家知道,用户程序进行IO的读写,依赖于底层的IO读写,基本上会用到底层的read&write两大系统调用。在不同的操作系统中,IO读写的系统调用的名称可能不完全一样,但是基本功能是一样的。

    这里涉及一个基础的知识:read系统调用,并不是直接从物理设备把数据读取到内存中;write系统调用,也不是直接把数据写入到物理设备。上层应用无论是调用操作系统的read,还是调用操作系统的write,都会涉及缓冲区。具体来说,调用操作系统的read,是把数据从内核缓冲区复制到进程缓冲区;而write系统调用,是把数据从进程缓冲区复制到内核缓冲区。

    也就是说,上层程序的IO操作,实际上不是物理设备级别的读写,而是缓存的复制。read&write两大系统调用,都不负责数据在内核缓冲区和物理设备(如磁盘)之间的交换,这项底层的读写交换,是由操作系统内核(Kernel)来完成的。在用户程序中,无论是Socket的IO、还是文件IO操作,都属于上层应用的开发,它们的输入(Input)和输出(Output)的处理,在编程的流程上,都是一致的。

    资料来源:《Netty、Redis、ZooKeeper高并发实战》,文章链接:https://developer.aliyun.com/article/726757

    2021-10-29 15:29:38
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
多IO线程优化版 立即下载
Redis 的高并发实战:抢购系统 立即下载
MySQL高并发场景实战 立即下载