首页 > TAG信息列表 > 上钩
【架构师面试-Java编程基本功-5】-五种IO模型
注意:我这里的用户空间就是应用程序空间 1:阻塞 BIO(blocking I/O) A 拿着一支鱼竿在河边钓鱼,并且一直在鱼竿前等,在等的时候不做其他的事情,十分专心。只有鱼上钩的时,才结束掉等的动作,把鱼钓上来。 在内核将数据准备好之前,系统调用会一直等待所有的套接字,默认的是阻塞方式。 2:非阻这是我见过BIO/NIO/AIO讲的最清楚的博客了
链接跳转 最后,再举几个不是很恰当的例子来说明这四个IO Model:有A,B,C,D四个人在钓鱼: 对应BIO,NIO,IO多路复用(select,epoll),AIO A用的是最老式的鱼竿,所以呢,得一直守着,等到鱼上钩了再拉杆;B的鱼竿有个功能,能够显示是否有鱼上钩,所以呢,B就和旁边的MM聊天,隔会再看看有没有鱼上钩,有的五种I/O模型
文档地址:https://www.cse.huji.ac.il/course/2004/com1/Exercises/Ex4/I.O.models.pdf 五种I/O模型: 1. blocking I/O 阻塞I/O 2. nonblocking I/O 非阻塞I/O 3. I/O multiplexing (select and poll) I/O多路复用 4. sig五种IO模型
IO的产生 I/O输入/输出(Input/Output),分为IO设备和IO接口两个部分. 当用户进程调用了recvfrom这个系统调用,就引发了一次IO过程,这个时候的IO就要等待系统去磁盘上将数据读取读来,再拷贝到进程中 在网络情况下,IO通常分为两步 1.等待系统准备数据 2.数据从内核中