理解Java NIO

  1. 云栖社区>
  2. 博客>
  3. 正文

理解Java NIO

血烟 2016-01-06 10:51:44 浏览27239
展开阅读全文

基础概念
• 缓冲区操作
缓冲区及操作是所有I/O的基础,进程执行I/O操作,归结起来就是向操作系统发出请求,让它要么把缓冲区里的数据排干(写),要么把缓冲区填满(读)。如下图
15184210_Xonl
• 内核空间、用户空间 
上图简单描述了数据从磁盘到用户进程的内存区域移动的过程,其间涉及到了内核空间与用户空间。这两个空间有什么区别呢? 
用户空间就是常规进程(如JVM)所在区域,用户空间是非特权区域,如不能直接访问硬件设备。内核空间是操作系统所在区域,那肯定是有特权啦,如能与设备控制器通讯,控制用户区域的进程运行状态。进程执行I/O操作时,它执行一个系统调用把控制权交由内核。 
• 虚拟内存 
• 内存页面调度 
5种I/O模型
说起I/O模型,网络上有一个错误的概念,异步非阻塞/阻塞模型,其实异步根本就没有阻不阻塞之说,异步模型就是异步模型。让我们

网友评论

登录后评论
0/500
评论
血烟
+ 关注