02 2022 档案
摘要:Nio空轮询bug在哪里体现,并如何解决? 在NioEventLoop中,run方法中是一个死循环,所以需要通过调用selector来进行阻塞。如果这个bug发生了,即使没有超时,也会不断进行循环,导致cpu占用率会到达100%。 @Override protected void run() { i
阅读全文
摘要:问题描述 在项目中,使用到了resources文件下的数据文件,使用的是File方式: // ResourceUtils.CLASSPATH_URL_PREFIX 值为:"classpath:" // cityProperties.getPath(); 为要使用的文件地址 String path =
阅读全文
摘要:前言 由于整个NioEventLoop类过大,其中还有很多从父类继承的方法。所以在这里通过以问题驱动的方式,对重要部分进行逐步分析。 组成部分 Selector private Selector selector; private Selector unwrappedSelector; 线程 在父类
阅读全文
摘要:Netty源码分析-启动流程 原生NIO启动流程 // netty 中使用 NioEventLoopGroup (简称 nio boss 线程)来封装线程和 selector Selector selector = Selector.open(); // 创建 NioServerSocketChan
阅读全文