
netty
文章平均质量分 77
L Y C
这个作者很懒,什么都没留下…
展开
-
22届SHEIN校招面试--JAVA开发工程师面经
这里写自定义目录标题个人背景性格测评+笔试一面 8.30 同事面二面 9.08 tl面三面 9.13 hr面四面 9.16 部门总监面五面 9.25 CEO面面试总结+实习期的感受今年一月,我投递了shein的Java实习岗位,当时没有准备充分,没有通过面试。今年九月,我卷土重来,顺利通过Shein提前批的五轮面试。现在已经提前去shein实习,成为一名光荣的sheiner了。先提前打个广告,shein的2022届的春招和2023届的实习招聘年后就会火速开启,使用我的内推码(NTAJPas) 投递的话,原创 2021-12-22 16:55:40 · 5528 阅读 · 4 评论 -
Netty源码分析(六)pipeline初始化,handlerContext添加和删除handler,inbound和outbound事件的传播
pipeline初始化创建channel的时候创建pipeline创建tail和head 两个ChannelHandlerContext 并连接起来,成为一个双向链表一个channel对应一个pipelineclass AbstractChannel { protected AbstractChannel(Channel parent) { this.parent = parent; id = newId(); unsafe = newUn原创 2021-08-25 21:53:51 · 411 阅读 · 1 评论 -
Netty源码分析(五) Netty检测新连接,并注册到workgroup的nioeventLoop线程,最后更新selector状态
新连接处理逻辑检测新连接创建NioSocketChannel分配线程和注册Selector向Selector注册读事件检测新连接bossGroup线程不断轮询,一有连接接入会调用processSelectedKey 方法获取通道上就绪的事件,关心连接事件连接并把缓冲区的写事件全部释放出去class NioEventLoop { private void processSelectedKey(SelectionKey k, AbstractNioChannel ch) {原创 2021-08-24 20:57:21 · 355 阅读 · 0 评论 -
Netty源码分析(四) NioEventLoop探究,线程创建器,执行器,启动,轮询io事件,处理io事件,优化任务队列,定时队列
上文提到了Netty创建Nio线程的过程,本文将更深入的了解EventLoopEventLoop事件循环通过不停的轮训事件集合,去处理所有的事件NioEventLoopGroup里面的线程创建器传入一个默认线程工厂 //底层实现了自己的ThreadFactory,继承于juc的ThreadFactory 每次执行任务都会新增一个线程实体线程命名为NioEventLoop - 1-xx(第一个NioeventLoop)class Test { public static voi原创 2021-08-18 20:25:45 · 465 阅读 · 0 评论 -
Netty源码分析(三)channel,创建channel,初始化channel,绑定端口,唤醒回调事件
ChannelNetty的抽象了一个顶层接口Channel相比原来NIO提供的Channel有更多的功能,当然也是相对复杂的。Java NIO包下的channelJavaNIO包下的channel 做了三层封装最顶层的Channel只封装了关和开两种状态第二层SelectableChannel封装了和Selector交互的状态第三层封装了具体的业务类Netty的channel继承图做了四层封装第一层channel抽象了所有的channel的公共行为第二层c原创 2021-08-09 20:57:33 · 998 阅读 · 0 评论 -
Netty源码分析(二),Netty中的future和Promise,DefaultPromise的实现
JUC包中的futureclass Test { public static void main(String[] args) { FutureTask<Boolean> hTask = new FutureTask<>(() -> { System.out.println(getCurrentThreadName() + "---------"); System.out.println("洗好茶壶");原创 2021-07-24 21:03:58 · 377 阅读 · 1 评论 -
Netty源码分析(一),Reactor模型,创建Nio线程组的过程
Reactor 模型Reactor适用于同步io事件分离者等待某个事件或者另外一个操作的状态发生分离者就会将事件传给回调函数处理经典Reactorreactor 将Io事件转发给对应的handleracceptor 处理连接事件Netty的Reactor 模型使用多Reactor模型一个Reactor监控所有的连接请求多个子Reactor监控处理读写请求一个子Reactor属于独立的线程,每个成功连接的Channel的操作只由一个线程处理,避免了不必要的上下文切换。原创 2021-07-22 21:32:16 · 233 阅读 · 1 评论 -
Netty入门,NIO,BIO,三大组件
NettyNetty是什么Netty是由JBOSS提供的一个java开源框架,现为 Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户、服务器端的编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程,例如:基于TCP和UDP的socket服务开发。“快速”和“简单”并原创 2021-02-06 15:05:37 · 289 阅读 · 0 评论