java
文章平均质量分 89
黑夜下雨
快乐无处不在
展开
-
netty启动过程
netty服务端启动流程Demo代码一、EventLoop的创建二、启动 Demo代码 下面是一个简单的EchoServer public void start() throws InterruptedException { final EchoServerChildHandler serverChildHandler=new EchoServerChildHandler(); EventLoopGroup boss=new NioEventLoo原创 2021-02-28 17:57:07 · 323 阅读 · 0 评论 -
netty基本组件
netty基本组件EventLoopEventLoopGroupChannelchannelHandlerBootStrap EventLoop EventLoop是处理事件的一个单位,可以处理连接请求、写请求和读请求。 一个EventLoop在创建时会绑定一个SelectorProvider,后续Selector通过这个provider来创建,不同平台的provider不一样,selector也不同。 一个EventLoop在创建时会绑定一个Selector,后续的事件会注册到这个Selector上。原创 2021-02-21 20:43:50 · 197 阅读 · 0 评论 -
个人知识总结:堆排序
1 堆的概念 堆排序中的"堆"是指二叉堆,是一棵被完全填满的二叉树(完全填满不是指满二叉树),也就是完全二叉树,深度为logN。 完全二叉树 图示 以层级遍历如果出现空节点,后面节点都为空就是一棵完全二叉树。 最大堆,最小堆 父节点的值大于左右节点值的堆称为最大堆,也就是说根节点的值是树中的最大值 父节点的值小于左右节点值的堆称为最小堆,也就是说根节点的值是...原创 2019-04-24 18:55:21 · 152 阅读 · 0 评论 -
线程池如何实现重复使用线程
1.在分析线程池原理之前,理解线程的创建和销毁是必要前提。 java 提供的新建线程方式有 new Thread(); 但是并不表示创建了一个线程,线程的创建需要向内核系统申请。当调用了Thread的start()方法,才会向系统申请线程。下面是Thread类start()方法的源码,注意start0()方法,是个native方法 通过start0()来申请创建新的线程。 ...原创 2019-12-15 18:24:29 · 1885 阅读 · 1 评论