NIO
Hankinglor
这个作者很懒,什么都没留下…
展开
-
NIO学习(一)----Buffer
NIO简介 Java NIO(New IO Non Blocking IO)是从java1.4版本开始引入的一个新的IO API,可以代替标准的JAVA IO API。NIO与原来的IO有相同的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区、基于通道的IO操作。NIO将以更加高效的f方式进行文件的读写操作。 NIO和IO的主要区别 IO:面向流(Stream Oriented)、阻塞IO...原创 2019-07-29 00:53:26 · 103 阅读 · 0 评论 -
NIO学习(二)----Channel
** 阻塞与非阻塞 ** 1.传统IO流都是阻塞式的,也就是说,当一个线程调用read()或write()时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不会执行其他任务。因此,在完成网络通信进行IO操作时,由于线程会阻塞,所以服务器端必须为每个客户端都提供一个独立的线程进行处理,当服务器端需要处理大量客户端时,性能急剧下降。 2.Java Nio是非阻塞模式的,当线程从某通道进行读写...原创 2019-07-30 16:14:54 · 3206 阅读 · 0 评论 -
NIO学习(三)----Selector
选择器(Selector) 1.选择器(Selector)是SelectableChannl对象的多路复用器,Selector可以同时监控多个SelectableChannel的IO状况,利用Selector可使一个单独的线程管理多个Channel。Selector是非阻塞IO的核心。 2.SelectableChannel的结构如下图: 选择器(Selector)的应用 1.创建Selecto...原创 2019-07-30 16:20:39 · 155 阅读 · 0 评论 -
NIO学习(四)----DatagramChannel和管道(pipe)
DatagramChannel 1.Java NIO中的DatagramChannel是一个能接收发UDP包的通道 2.操作步骤 1).打开DatagramChannel 2).接收/发送数据 package com.wxl.nio; import org.junit.Test; import java.io.IOException; import java.net.InetSocketAdd...原创 2019-07-30 16:24:52 · 193 阅读 · 0 评论