Netty
文章平均质量分 68
小北不懂
这个作者很懒,什么都没留下…
展开
-
ByteBuffer是怎么构成的,如何使用?
ByteBuffer通常用于Java原生NIO操作中,对Channel进行读取或者写入,其中封装了一些操作byte数组的方法,还是很实用的。ByteBuffer的几个基本属性: position:表示进行下一个读写操作的下标位置 limit:表示进行读写操作时的结束位置; capacity:表示存储的容量 mark: 对数据进行标记 初始化:对ByteBuffer进行初始化,可以使用静态方法wrap(byte[] data)封装数组,也可以通过另一...原创 2021-10-26 22:03:48 · 332 阅读 · 0 评论 -
Java Nio中Selector是什么?Selector怎么使用呢?
以前大家都是用阻塞式IO来对网络IO进行数据请求,对于不同的IO都要分配一个线程来处理,如果没有数据就会进行等待,从而造成了阻塞,这种方式极大地浪费了资源(如图1)。于是,有人就提出了一个想法,使用一个线程去监控多个IO请求,如果哪一个IO数据准备完毕后就通知相应的线程来处理,这就是selector模型(如图2)。而Java中的selector就是对selector模型的一种实现,用于询问选择已就绪的IO处理任务。Selector的几个核心的概念Channel(通道):用于进行网...原创 2021-10-25 22:08:49 · 554 阅读 · 0 评论 -
五种IO模型,BIO、NIO、AIO之间的区别
说到io模型,就不得不先提一下阻塞与非阻塞,同步与异步了,下面就来聊聊这几个概念。当系统进行io操作时,一般会涉及两个对象,用户线程(或进程)和操作系统内核,这个操作主要分为两个步骤: 等待数据准备 将数据从系统内核加载到进程中 阻塞与非阻塞的区别主要在数据准备阶段。所谓阻塞就是当用户线程进行数据请求时,如果数据还没准备好,系统并不会立即返回,而是等数据准备好之后再返回。而对于非阻塞而言,用户线程在请求数据时,不管数据有没有准备好,都会直接返回。举个例子,你饿了要去一家店吃饭,点菜打原创 2021-10-24 17:20:12 · 578 阅读 · 0 评论