![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
hcolder
这个作者很懒,什么都没留下…
展开
-
IDEA报错Failed to execute goal org.apache.maven.
1.查看设置中的Maven,看setting.xml和resposity是否路径正确2.到maven中降低maven-plugin版本原创 2021-05-06 15:28:25 · 276 阅读 · 0 评论 -
idea报错Can‘t find catalina.jar解决方法
虽然现在大多直接使用Spring框架,其内置tomcat,能减少很多配置。但我们从网上找的项目,很多还是以前使用tomcat的项目。而且有时在本地编译器上跑会出现can‘t find catalina.jar错误。出现该错误,大部分原因是由配置出现了问题,尤其是tomcat的配置。原创 2021-04-08 15:58:03 · 29112 阅读 · 2 评论 -
Netty学习之Netty模型的模块组件
前言上一篇博客介绍了Netty模型是如何一步步演化的,以及该模型由哪些模块组件所构成,而这篇博客则详细讲述下,该模型中各个模块组件的具体功能。Netty的模块组件首先来回顾下Netty的模型图:模块组件:1.【NioEventLoop】:NioEventLoop 中维护了一个线程和任务队列,支持异步提交执行任务,线程启动时会调用 NioEventLoop 的 run 方法,执行 I/O 任务和非 I/O 任务。I/O 任务,即 selectionKey 中 ready 的事件,如 accep原创 2021-03-09 23:03:17 · 221 阅读 · 0 评论 -
Netty学习之Netty模型和Reactor模式
Reactor单线程模型Reactor单线程模型,指的是所有的I/O操作都在同一个NIO线程上面完成,Reactor线程是个多面手,负责多路分离套接字,使用Acceptor建立新连接,并分派请求到处理器链中。该模型 适用于处理器链中业务处理组件能快速完成的场景。不过,这种单线程模型不能充分利用多核资源,所以实际使用的不多。单Reactor多线程单Reactor多线程通过使用一个专门的NIO线程–acceptor新城用于监听服务端,接收客户端的TCP连接请求并且处理请求的Handler使用多线程进原创 2020-12-02 23:51:56 · 450 阅读 · 0 评论 -
Netty学习之零拷贝
一、零拷贝所谓零拷贝,即不经过CPU的拷贝方式。1.传统IO在传统的IO中,拷贝经过以下几个步骤:拷贝:硬盘->(DMA)内核->(CPU)用户buffer->(CPU)socket buffer->(DMA拷贝)协议引擎对应的切换模式如下:切换:用户->内核->用户->内核图解如下,上图是切换模式,下图是拷贝所需要经过的过程:其中DMA copy即直接内存拷贝,不经过CPU2.mmap——内存映射优化为了减少CPU拷贝,后面提出了MMAP模式原创 2020-12-02 23:11:18 · 247 阅读 · 0 评论 -
AQS(abstractqueuedSynchronizer)抽象队列同步器详解
AQS(abstractqueuedSynchronizer)抽象队列同步器,基于模板方法模式,是用来构建锁或者其他同步组件的基础框架。它使用int成员变量(state)来表示同步状态,通过内置的FIFO队列(CLH队列)来完成资源获取线程的排队工作。原创 2020-09-13 11:21:33 · 381 阅读 · 0 评论 -
PriorityQueue的排序规则
这里先用一个栗子来帮助理解,后续补上源码…public static void main(String[] args) { //小顶堆 PriorityQueue<Integer> pq = new PriorityQueue<Integer>((o1,o2)->o1.compareTo(o2)); pq.add(3); pq.add(1); pq.add(2); pq.add(4); for(Integer t:pq){ System.ou原创 2020-08-25 22:48:41 · 1786 阅读 · 0 评论