java io知识
内核空间和用户空间
从安全的角度考虑,读写io操作必须在内核中进行,完成后再传到用户空间
bio
就是堵塞io,当服务器接收到客户端发出的获取文件的请求后,等待内核将文件copy到内核空间,然后再由内核空间copy到用户空间
,这个过程全称堵塞,应用会一直挂在那里,等待完成
nio
io多路复用 应用给内核发出获取文件的请求,通知内核去读取文件,然后立即返回。当内核准备好数据后,select就会立即返回。然后将数据从内核空间copy到
用户空间(堵塞)
buffer
存放数据,即容器
channel
所有的读写操作,都是在channel里进行的
selector
socket必须注册在select上,当socket状态发生改变时,selector将socket返回,再进行下一步的处理
aio
收到获取文件的请求,直接通知内核去处理,完成后,将结果返回给应用(异步)
网友评论