NIO
尼古拉斯大树
这个作者很懒,什么都没留下…
展开
-
NIO基础教程之channel、buffer(一)
一、什么是NIO?Java NIO (New IO) 是一个替代接口(从Java 1.4开始),相对于Java传统IO接口和网络接口而言。NIO处理IO的方式和传统IO会有很大区别。标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。NIO可以理解为非阻塞IO,传统的IO的re...原创 2019-09-26 20:44:53 · 1216 阅读 · 0 评论 -
NIO基础教程之选择器(selector)(二)
在我们说选择器之前,我们先理解一下以下概念。一、阻塞io和无阻塞io:阻塞io是指jdk1.4之前版本面向流的io,服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒 绝请求,如果有的话,客户端会线程会等待请求结束后才继续执行。当并发量大,而后端服务或客户端处理数据慢时就会产生产生大量线程处于等待中,即上述的阻塞。...原创 2019-09-29 16:06:38 · 282 阅读 · 0 评论 -
NIO基础教程之直接缓冲区与非直接缓冲区、分散读取与聚集写入(三)
直接缓冲区与非直接缓冲区别非直接缓冲区:通过 allocate() 方法分配缓冲区,将缓冲区建立在 JVM 的内存中直接缓冲区:通过 allocateDirect() 方法分配直接缓冲区,将缓冲区建立在物理内存中。可以提高效率字节缓冲区要么是直接的,要么是非直接的。如果为直接字节缓冲区,则 Java 虚拟机会尽最大努力直接在此缓冲区上执行本机 I/O 操作。也就是说,在每次调用...原创 2019-09-29 16:51:45 · 211 阅读 · 0 评论