文档章节

IO与NIO

 幸福快乐的小码农
发布于 2017/08/14 22:54
字数 314
阅读 2
收藏 0

一、NIO只是同步非阻塞

阻塞:应用程序在获取网络数据的时候,如果网络带宽传输慢,那么应用程序会一直阻塞等待着,直到完整接收完服务端的请求后

非阻塞:应用程序可以读取准备就绪好的数据,不需要等待

TCP连接握手,客户端发送请求给服务端,服务端通过header告诉客户端,这次请求会有多大的数据传输给你,然后发送数据给客户端,但是客户端由于网络带宽原因,一直卡着,就会影响读取效率

BIO:同步阻塞

NIO:同步非阻塞

AIO:异步非阻塞,JDK1.7实现

同步与异步是相对于操作系统与应用程序来说

同步:应用程序直接参与IO读写,比如我们通过inputStream,并且程序会阻塞在某个方法上,或者通过轮询的方式,来处理客户端请求

异步:所以的IO操作都交给操作系统处理,程序不需要关心IO读取,当操作系统完成IO读取后,会通知应用程序,应用程序只需要去拿数据即可

 

 

© 著作权归作者所有

上一篇: NIO(一)
下一篇: 传统的Socket编程
粉丝 0
博文 12
码字总数 5501
作品 0
闸北
私信 提问
14. Java NIO vs IO

当学习Java的NIO和IO时,有个问题会跳入脑海当中:什么时候该用IO,什么时候用NIO? 下面的章节中笔者会试着分享一些线索,包括两者之间的区别,使用场景以及他们是如何影响代码设计的。 NI...

逝去的回忆
2016/11/19
21
0
java NIO:IO与NIO的区别

一、概念 NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在Java API中提供了两套NIO,一套是针对标...

盼望明天
2018/09/11
98
0
网络通信、NIO

一、TCP、UDP、IP CP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,如下图: TCP协议是面向连接、保证高可靠性(数据无丢失、数据无失序、数据无错误、数据...

九月菊花香
2016/11/15
97
0
NIO拷贝文件真的比IO拷贝文件效率高?

本文是基于单线程的NIO和IO拷贝文件比较, 并未对并发做测试, 请勿过度纠结场景! 今天发现项目中有个FileUtils.copy的工具方法, 打开后发现是基于io的, 我给改成了基于NIO的, 突然疑虑N...

xiaoqqq
2014/06/10
8.2K
45
NIO和IO的区别

(NIO翻译单独拎出来) 当我们开始学习IO和NIO的时候,有个问题:我应该在什么时候使用NIO和IO。在本文中我会尽量简明扼要说明NIO和IO的区别,它们的使用环境,以及它们是怎样影响编程。 NI...

marjey
2016/11/04
41
0

没有更多内容

加载失败,请刷新页面

加载更多

Android面试常客之Handler全解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/fnhfire_7030/article/details/79518819 前言:又到了一年...

shzwork
12分钟前
1
0
position sticky 定位

本文转载于:专业的前端网站➫position sticky 定位 1、兼容性 https://caniuse.com/#search=sticky chrome、ios和firefox兼容性良好。 2、使用场景 sticky:粘性。粘性布局。 在屏幕范围内时...

前端老手
19分钟前
1
0
CentOS 7 yum 安装 PHP7.3 教程

参考:https://www.mf8.biz/centos-rhel-install-php7-3/ 1、首先安装 EPEL 源: yum install epel-release 安装 REMI 源: yum install http://rpms.remirepo.net/enterprise/remi-release......

dragon_tech
34分钟前
1
0
Linux物理网卡聚合及桥接

Linux内部实现的bridge可以把一台机器上的多张网卡桥接起来,从而把自己作为一台交换机。同时,LInux bridge还支持虚拟端口,即桥接的不一定都是物理网卡接口,还可以是虚拟接口。目前主要表...

xiangyunyan
34分钟前
1
0
一起来学Java8(一)——函数式编程

在这篇文章中,我们将了解到在Java8下如何进行函数式编程。 函数式编程 所谓的函数式编程就是把函数名字当做值进行传递,然后接收方拿到这个函数名进行调用。 首先来看下JavaScript如何进行函...

猿敲月下码
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部