Netty入门和进阶
文章平均质量分 83
从基础开始入门Netty的世界,从底层类开始学习Netty,让Netty学习更加扎实,本专栏含示例代码,从基础成为网络编程达人
「已注销」
这个作者很懒,什么都没留下…
展开
-
Netty入门和进阶之五❤❤❤NIO和BIO
5. Netty入门和进阶之五❤❤❤NIO和BIO 5.1 stream vs channel stream 不会自动缓冲数据,channel 会利用系统提供的发送缓冲区、接收缓冲区(更为底层) stream 仅支持阻塞 API,channel 同时支持阻塞、非阻塞 API,网络 channel 可配合 selector 实现多路复用 二者均为全双工,即读写可以同时进行 5.2 IO 模型 同步阻塞、同步非阻塞、同步多路复用、异步阻塞(没有此情况)、异步非阻塞 同步:线程自己去获取结果(一个线程) 异原创 2021-07-30 10:08:23 · 86 阅读 · 0 评论 -
Netty入门和进阶之四❤❤❤网络编程
4. Netty入门和进阶之四❤❤❤网络编程 4.1 非阻塞 vs 阻塞 阻塞 阻塞模式下,相关方法都会导致线程暂停 ServerSocketChannel.accept 会在没有连接建立时让线程暂停 SocketChannel.read 会在没有数据可读时让线程暂停 阻塞的表现其实就是线程暂停了,暂停期间不会占用 cpu,但线程相当于闲置 单线程下,阻塞方法之间相互影响,几乎不能正常工作,需要多线程支持 但多线程下,有新的问题,体现在以下方面 32 位 jvm 一个线程 320k,64 位 jv原创 2021-07-30 10:03:30 · 141 阅读 · 0 评论 -
Netty入门和进阶之三❤❤❤文件编程
3. Netty入门和进阶之三❤❤❤文件编程 3.1 FileChannel ⚠️ FileChannel 工作模式 FileChannel 只能工作在阻塞模式下 获取 不能直接打开 FileChannel,必须通过 FileInputStream、FileOutputStream 或者 RandomAccessFile 来获取 FileChannel,它们都有 getChannel 方法 通过 FileInputStream 获取的 channel 只能读 通过 FileOutputStream 获原创 2021-07-30 10:01:38 · 81 阅读 · 0 评论 -
Netty入门和进阶之二❤❤❤ByterBuffer
2. ByteBuffer 有一普通文本文件 data.txt,内容为 1234567890abcd 使用 FileChannel 来读取文件内容 @Slf4j public class ChannelDemo1 { public static void main(String[] args) { try (RandomAccessFile file = new RandomAccessFile("helloword/data.txt", "rw")) {原创 2021-07-30 09:53:18 · 98 阅读 · 0 评论 -
Netty入门和进阶之一❤❤❤三大组件
一. NIO 基础 non-blocking io 非阻塞 IO 1. 三大组件 1.1 Channel & Buffer channel 有一点类似于 stream,它就是读写数据的双向通道,可以从 channel 将数据读入 buffer,也可以将 buffer 的数据写入 channel,而之前的 stream 要么是输入,要么是输出,channel 比 stream 更为底层 #mermaid-svg-bzDIzYFI2r22Y95z .label{font-family:'trebuche原创 2021-07-30 09:47:24 · 76 阅读 · 0 评论