NIO-02 NIO和BIO的区别
模型BIO 和 NIO 的区别BIO 好比是通道传输,一来一回NIO 好比是管道传输,一堆来一堆回。
BIO 模型1234567________ _________| |-----------------------| || |-----------输入--------| || | | || |-----------输出--------| || |-----------------------| ||-------| |-------|
输入和输出都需要建立一条管道。也就是说,数据的传输是单向的,出去从输出流通道走,回来从输入流通道走。面向流,通道传输的是流
NIO 模型1234567_________ _________| |-----------------------| ...
NIO-01 概述
简述服务器实现模式为一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。
Java NIO(Non-blocking / New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO 和 IO 的区别在于,IO 是面向流,NIO 是面向缓存。是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的有效方式。
传统面向流的,单向的三个核心组件
Channels
Buffers
Selectors
1.Channels 负责传输白话: 就是数据传输用的通道。作用是打开到IO设备的连接,文件、套接字都行。绕绕话: 标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。
2.Buffers 负责存储缓冲区,用来存放具体要被传输的数据,比如文件、scoket 等。这里将 ...