码迷,mamicode.com
首页 > Web开发 > 详细

001——Netty之IO基础

时间:2018-11-25 10:14:39      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:权威指南   request   asa   ref   href   缓冲   hat   att   The   

背景

1.4版本之前JAVA对IO的支持不完善。
(1)缓冲区
(2)没有Channel,只有输入与输出流
(3)同步阻塞IO(BIO)

UNIX的5种IO模型

(1)阻塞IO模型
(2)非阻塞IO模型
(3)IO复用模型
(4)信号驱动IO模型
(5)异步IO
技术分享图片

Older IO与New IO

技术分享图片

异步与非阻塞

1、停顿等待

(1)停顿不等待
异步与非阻塞都可以理解为停顿不等待
(2)停顿等待
同步与阻塞都可以理解为停顿等待

2、POSIX标准(可移植操作系统接口)对synchronous IO和asynchronous IO定义

(1)A synchronous I/O operation causes the requesting process to be blocked until that I/O operation completes
(2)An asynchronous I/O operation does not cause the requesting process to be blocked;

3、synchronous 与 asynchronous区别

(1)两者区别在于synchronous在做IO操作时将进程阻塞。阻塞IO模型、非阻塞IO模型、IO复用模型、信号驱动IO模型都是同步。例如:非阻塞IO模型在kernel(内核)准备好数据时,会调用recvfrom将数据从内核复制到用户空间。信号驱动IO模型会在数据准备好之后,通知应用程序进行IO操作。asynchronous则是在应用进程发起IO操作后,就直接返回,知道操作系统完成IO操作(其中包括将数据从内核复制到用户空间)后,通知应用进程I/O操作完成。
总结一句话就是整个IO操作过程是不是操作系统完成的(其中包括将数据从内核复制到用户空间)

4、如何理解Netty4.0版本是“非阻塞”的“同步IO”?同步与非阻塞是否矛盾?

(1)结合(2)(3)可知

参考

[1] https://blog.csdn.net/historyasamirror/article/details/5778378
(《Unix网络编程》)
[2] https://blog.csdn.net/matthew_zhang/article/details/71328697
[3] Netty权威指南 第一章 4-5页

001——Netty之IO基础

标签:权威指南   request   asa   ref   href   缓冲   hat   att   The   

原文地址:https://www.cnblogs.com/boycelee/p/10014400.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!