Netty
光影和弦 一抹春色
这个作者很懒,什么都没留下…
展开
-
JAVA NIO
一 NIO 和 IO的区别 1.NIO和传统BIO的核心区别:NIO采用的是多路复用的IO模型 普通IO用的是阻塞式IO模型 两者之间效率是多路复用效率更高 2.NIO 是以块的形式处理数据 IO是以最基础的字节流形式去写入 和读出的 效率上NIO效率更高 IO不在是和IO一样用OutputStream和InputStream 输入流的形式来进行处理数据的,但是又是基于这种流的形式,而是采用了通道和缓冲区的形式来进行处理数据的。 3 还有一点就是NIO的通道是可以双向的,但是IO中的流只能是单向的。 4还有原创 2020-06-28 20:47:37 · 177 阅读 · 0 评论 -
Netty
1.1 ByteBuf 1.1.1 对比 ByteBuffer NIO 中的 ByteBuffer 固定长度 读写公用一套指针 功能有限 Netty 中的 ByteBuf 1.1.2 特点 1.1.2.1 便捷的读写操作 通过2个位置指针来协助缓冲区的读写,读使用 readerIndex,写使用 writerIndex。 1.1.2.2 动态扩展缓冲区 put 时,效验剩余空间,当容量超过限制后,通过 System.arraycopy 方法来对数组进行扩容操作,重建一个新的 ByteBuf,并将之前的 By原创 2020-06-22 16:41:23 · 243 阅读 · 0 评论 -
Netty(二)
异步和同步 同步(Sync):所谓同步,就是线程发出一个功能调用时,在没有得到结果之前,该调用就不返回或继续执行后续操作,而是等待可以调用。当可以调用之后,线程自行进行调用。 异步(Async):异步与同步相对,当一个异步过程调用发出后,调用者在没有得到结果之前,就可以继续执行后续操作。当这个调用完成后,一般通过状态、通知和回调来通知调用者。对于异步调用,调用的返回并不受调用者控制。 总结来说,同步和异步的区别大概有两个: 请求发出后,是否可以返回执行其他操作。 当可以进行调用时,同步情况是发起调用的线程自原创 2020-05-16 08:21:28 · 131 阅读 · 0 评论 -
Netty(NIO分析及应用)
引言 传统BIO通信模型 采用 BIO 通信模型的服务端,通常由一个独立的 Acceptor 线程负责监听客户端的连接,接收到客户端连接之后为客户端连接创建一个新的线程处理请求消息,处理完成之后,返回应答消息给客户端,线程销毁,这就是典型的一请求一应答模型。该架构最大的问题就是不具备弹性伸缩能力,当并发访问量增加后,服务端的线程个数和并发访问数成线性正比,由于线程是 JAVA 虚拟机非常宝贵的...原创 2020-04-20 11:15:16 · 177 阅读 · 0 评论