从Linux内核理解JAVA的NIO
前言
IO 可以简单分为磁盘 IO
和 网络 IO
,磁盘 IO
相对于网络 IO
速度会快一点,本文主要介绍 磁盘 IO
,网络 IO
下周写。
JAVA 对 NIO
抽象为 Channel
, Channel
又可以分为 FileChannel
(磁盘 io)和 SocketChannel
(网络 io)。
如果你对 IO 的理解只是停留在 api 层面那是远远不够的,一定要了解 IO 在系统层面是怎么处理的。
本文内容:
Linux 内核
中的 虚拟内存
、系统调用
、文件描述符
、Inode
、Page Cache
、缺页异常
讲述整个 IO 的过程