BIO:
建立连接,一方不发送数据,另一方的read()就读不到,就会阻塞。
非阻塞IO,读不到也不阻塞,继续接受请求,会对CPU有影响
NIO:是新IO,采用多路复用IO模型
IO模型有5种:BIO,Non Blocking IO,多路复用IO,信号IO,AIO。
IO读取流程:
用户空间--------------内核空间-------------网卡
软件------------------内核函数------------网卡
读取数据,经过两个过程,一是准备数据,二是将数据拷入内存空间。
BIO使用内核函数reciveFrom(blocking ,)从网卡读取数据;
NIO首先使用epoll(),查看有没有事件,若有则调用recivefrom(noBlocking,)从网卡读取数据。