JAVA-每日一面 2022-01-11

问:
简述一下netty
答:
Netty⾼性能:
1.NIO异步⾮阻塞通信
2、“零拷⻉”
3、内存池ByteBuf
4、Netty提供了多种内存管理策略,通过在启动辅助类中配置相关参数,可以实现差异化的定制。
5、⾼效的Reactor线程模型:Reactor单线程(多线程、主从)模型,指的是所有的IO操作都在同⼀个NIO线程上⾯完成
6、为了尽可能提升性能,Netty采⽤了串⾏⽆锁化设计,在IO线程内部进⾏串⾏操作,避免多线程竞争导致的性能下降。
表⾯上看,串⾏化设计似乎CPU利⽤率不高,并发程度不够。
但是,通过调整NIO线程池的线程参数,可以同时启动多个串⾏化的线程并⾏运⾏,
这种局部⽆锁化的串⾏线程设计相⽐⼀个队列,多个⼯作线程模型性能更优。
7、⾼效的并发编程:Netty的⾼效并发编程主要体现在如下⼏点:
1)volatile的⼤量、正确使⽤;
2)CAS和原⼦类的⼴泛使⽤;
3)线程安全容器的使⽤;
4)通过读写锁提升并发性能。
8、⾼效的序列化框架:
9、灵活的TCP参数配置能⼒:合理设置TCP参数在某些场景下对于性能的提升可以起到显著的效果,
例如SO_RCVBUF和SO_SNDBUF。如果设置不当,对性能的影响是⾮常⼤的。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容