摘要: Nio空轮询bug在哪里体现,并如何解决? 在NioEventLoop中,run方法中是一个死循环,所以需要通过调用selector来进行阻塞。如果这个bug发生了,即使没有超时,也会不断进行循环,导致cpu占用率会到达100%。 @Override protected void run() { i 阅读全文
posted @ 2022-02-28 17:48 会编程的老六 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 问题描述 在项目中,使用到了resources文件下的数据文件,使用的是File方式: // ResourceUtils.CLASSPATH_URL_PREFIX 值为:"classpath:" // cityProperties.getPath(); 为要使用的文件地址 String path = 阅读全文
posted @ 2022-02-24 18:01 会编程的老六 阅读(4317) 评论(0) 推荐(0) 编辑
摘要: 前言 由于整个NioEventLoop类过大,其中还有很多从父类继承的方法。所以在这里通过以问题驱动的方式,对重要部分进行逐步分析。 组成部分 Selector private Selector selector; private Selector unwrappedSelector; 线程 在父类 阅读全文
posted @ 2022-02-16 13:30 会编程的老六 阅读(51) 评论(0) 推荐(0) 编辑
摘要: Netty源码分析-启动流程 原生NIO启动流程 // netty 中使用 NioEventLoopGroup (简称 nio boss 线程)来封装线程和 selector Selector selector = Selector.open(); // 创建 NioServerSocketChan 阅读全文
posted @ 2022-02-11 14:45 会编程的老六 阅读(51) 评论(0) 推荐(0) 编辑
摘要: BIO NIO AIO BIO 传统的同步阻塞式I/O模型。通常由一个Acceptor线程负责监听客户端的连接,接受到客户端的连接请求之后为每个客户端创建一个新的线程进行链路处理,处理完成之后,通过输出流返回给客户端。线程销毁,也就是典型的一请求一应答通信模型。BIO读写是面向流操作的。BIO流是单 阅读全文
posted @ 2022-01-13 00:43 会编程的老六 阅读(84) 评论(0) 推荐(0) 编辑
摘要: Linux 网络I/O模型 1. 阻塞IO模型 最常用的I/O模型,缺省情形下,所有文件操作都是阻塞的。进程空间调用recvfrom函数,直到数据包到达且被复制到应用进程的缓冲区中或者发生错误时才返回,在此期间,进程会被阻塞一直等待。 2. 非阻塞IO模型 recvfrom函数当发现内核缓冲区没有数 阅读全文
posted @ 2022-01-11 23:17 会编程的老六 阅读(87) 评论(0) 推荐(0) 编辑
摘要: LinkedHashMap实现LRU算法--高频面试题 至于LRU算法是什么,相信大家都已经有所了解了,那么在这里就不作描述了。 一、什么是LinkedHashMap? public class LinkedHashMap<K,V> extends HashMap<K,V> implements M 阅读全文
posted @ 2022-01-09 23:34 会编程的老六 阅读(88) 评论(0) 推荐(0) 编辑
摘要: Mybatis-9.28 环境: JDK1.8 Mysql 5.7 maven 3.6.1 IDEA 回顾: JDBC Mysql Java基础 Maven Junit SSM框架:配置文件的。 最好的方式:看官网文档; 1、简介 1.1、什么是Mybatis MyBatis 是一款优秀的持久层框架 阅读全文
posted @ 2021-11-09 21:10 会编程的老六 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 并发编程从零开始(十七)-ForkJoinPool(终章) 22 ForkJoinTask的fork/join 如果局部队列、全局中的任务全部是相互独立的,就很简单了。但问题是,对于分治算法来说,分解出来的一个个任务并不是独立的,而是相互依赖,一个任务的完成要依赖另一个前置任务的完成。 这种依赖关系 阅读全文
posted @ 2021-11-04 11:33 会编程的老六 阅读(579) 评论(0) 推荐(0) 编辑
摘要: 并发编程从零开始(十六)-ForkJoinPool 第四部分:ForkJoinPool 15 ForkJoinPool用法 ForkJoinPool就是JDK7提供的一种“分治算法”的多线程并行计算框架。Fork意为分叉,Join意为合并,一分一合,相互配合,形成分治算法。此外,也可以将ForkJo 阅读全文
posted @ 2021-11-03 23:20 会编程的老六 阅读(635) 评论(0) 推荐(0) 编辑