netty入门到放弃
文章平均质量分 94
Netty源码解析从入门到放弃
乐观的大鹏
一个被java吊打了n次的渣渣鹏
展开
-
netty-HashedWheelTimer源码解析
因为时间轮中的任务并不能够保证及时执行,假如有一个任务执行的时间特别长,那么任务在 timeouts 队列里已经过了执行时间,也没有关系,Worker 会将这些任务直接加入当前HashedWheelBucket 中,所以过期的任务并不会被遗漏。前面提到start()方法中会启动worker线程,并且会等待startTime不为0,worker线程会把startTime设置为当前的纳秒时间,并且。通过初始化函数得知,只是创建了工作线程,并未进行工作线程的执行,那么工作线程的start在什么时候调用?原创 2023-09-19 12:27:03 · 195 阅读 · 0 评论 -
Netty服务端启动的整体流程-基于源码4.1.96Final分析
创建服务端 Channel:本质是创建 JDK 底层原生的 Channel,并初始化几个重要的属性,包括 id、unsafe、pipeline 等。初始化服务端 Channel:设置 Socket 参数以及用户自定义属性,并添加两个特殊的处理器 ChannelInitializer 和 ServerBootstrapAcceptor。注册服务端 Channel:调用 JDK 底层将 Channel 注册到 Selector 上。端口绑定。原创 2023-09-04 18:35:31 · 365 阅读 · 0 评论 -
Netty源码NioEventLoop解析
因为异步任务处理是有超时时间的,所以 Netty 采取了定时检测的策略,每执行 64 个任务的时候就会检查一下是否超时,对性能的折中考虑,如果异步队列中有大量的短时间任务,每一次执行完都检测一次超时性能会有所降低。Netty的NioEventLoop并不是一个存粹的I/O线程,除了负责I/O的读写外(用于处理 Channel 生命周期内的所有I/O事件,如accept、connect、read、write等I/O事件),还负责处理系统任务和延迟任务(定时任务);原创 2023-08-28 22:20:46 · 675 阅读 · 0 评论