随笔分类 -  IO -> Netty

摘要:测试demo: import io.netty.bootstrap.Bootstrap; import io.netty.bootstrap.ServerBootstrap; import io.netty.buffer.ByteBuf; import io.netty.buffer.PooledB 阅读全文
posted @ 2022-11-25 15:53 aBiu-- 阅读(114) 评论(0) 推荐(0)
摘要:<dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.49.Final</version> </dependency> 测试demo: import io.netty.boot 阅读全文
posted @ 2022-11-25 15:53 aBiu-- 阅读(62) 评论(0) 推荐(0)
摘要:测试demo: public class MainThread { public static void main(String[] args) { // 这里不错io和业务的事情 // 创建IO Thread 一个或多个 // SelectorThreadGroup stg = new Selec 阅读全文
posted @ 2022-11-25 15:52 aBiu-- 阅读(61) 评论(0) 推荐(0)
摘要:测试POLL 测试代码: import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.*; import java.util.H 阅读全文
posted @ 2022-11-25 15:52 aBiu-- 阅读(204) 评论(0) 推荐(0)
摘要:NIO的问题: 优势: 通过1个或几个线程,来解决N个IO连接的处理。 问题: 虽然NIO一个线程可以处理所有事情,但每个操作都要出发系统调用,每个操作都是客户端主动的,无论是接收客户端,还是调用每一个客户端的是否读取到,都是程序向内核调用,然后内核给程序反馈。 这就出现了C10K,当io连接达到一 阅读全文
posted @ 2022-11-25 15:52 aBiu-- 阅读(214) 评论(0) 推荐(0)
摘要:网络IO变化模型 说的io,都知道同步、异步、阻塞、非阻塞,还有同步阻塞、同步非阻塞、异步非阻塞。 不过没有异步阻塞的,这个是矛盾的,异步怎么还会阻塞? strace -ff -o out 路径: 追踪系统调用,关注io的实现 BIO 测试代码: import java.io.BufferedRea 阅读全文
posted @ 2022-11-25 15:52 aBiu-- 阅读(127) 评论(0) 推荐(0)
摘要:lsof -p: 查看网络通讯的文件描述符 netstat -natp: 只查看socket tcpdump: 抓取网络通讯包 测试代码:服务端的 import java.io.BufferedReader; import java.io.IOException; import java.io.In 阅读全文
posted @ 2022-11-25 15:51 aBiu-- 阅读(79) 评论(0) 推荐(0)
摘要:app是一个应用程序,应用程序有缓冲区,我们在写代码的时候,都用过Buffer。 应用程序肯定要访问内核,内核其实也是一个程序,应用程序和内核通信的时候,会调用一个system call(系统调用)。 system call 的实现是int 0x80,int是cpu的指令,0x80是16进制的,所以 阅读全文
posted @ 2022-11-25 15:51 aBiu-- 阅读(80) 评论(0) 推荐(0)
摘要:一个系统从宏观角度来讲,有CPU,有内存,剩下的都是io设备。 然后从在程序维度来讲,有kernel(内核)说白了kernel就是一个程序,剩下的都是用户空间的程序(如图中app表示), 每个程序都是逻辑的,线性的 一个内存地址,通过MMU转到CPU的物理地址,一个程序模拟使用整个内存,它的空间肯定 阅读全文
posted @ 2022-11-25 15:51 aBiu-- 阅读(328) 评论(0) 推荐(0)