Netty&NIO
文章平均质量分 90
Shi Peng
这个作者很懒,什么都没留下…
展开
-
再学Netty
一、Netty简介Netty是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。二、为什么使用Netty2.1、手写Java NIO的缺点因为自己写Java NIO很麻烦:1)NIO类库和API复杂,要熟练掌握Selector, ServerSocketChannel, SocketChannel, ByteBuffer等2)要熟悉Java多线程编程,且涉及到Reactor模式,这样才能写出高质量的NIO程序3)臭名昭著的epoll bug,它会导致select原创 2021-06-06 20:27:03 · 192 阅读 · 3 评论 -
Reactor模式 学习笔记
一、Reactor模式简介1.1、简介Reactor模式称为“反应器模式”或“分发者模式”。Reactor模式的工作原理:由一个线程来接收所有客户端请求,然后派发请求到相关的工作线程中。1.2、为什么使用reactor模式若一个请求,服务端用一个线程处理,当并发高时会创建大量线程,维护线程需要耗费大量资源,线程间切换也耗费资源,且系统能创建的线程数是有限的。二、Reactor模式的演进过程Reactor模式有三个角色:1)Reactor:负责响应请求,将请求分发到绑定了对应事件的handle原创 2021-06-06 20:08:55 · 441 阅读 · 0 评论 -
Netty学习笔记
一、Java传统IO与NIO原创 2018-12-03 22:59:25 · 374 阅读 · 0 评论 -
netty的优势
1.介绍Netty是由JBOSS提供的一个java开源框架。Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持。作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也基于Netty的NIO框架构建。2.Netty的特点1)高并发Netty是一款基于NIO(Nonblo...原创 2019-03-03 15:09:50 · 5697 阅读 · 0 评论 -
NIO相关概念
一、AIO、BIO、NIO的区别1. IO模型主要分类同步(synchronous) IO和异步(asynchronous) IO阻塞(blocking) IO和非阻塞(non-blocking)IO同步阻塞(blocking-IO)简称BIO同步非阻塞(non-blocking-IO)简称NIO异步非阻塞(synchronous-non-blocking-IO)简称AIO1)BIO...原创 2019-03-03 15:17:52 · 257 阅读 · 0 评论 -
netty中的零拷贝
Netty中的零拷贝与我们传统理解的零拷贝不太一样。传统的零拷贝指的是数据传输过程中,不需要CPU进行数据的拷贝,即零拷贝是不需要数据在用户空间与内核中间之间的拷贝。一、传统的零拷贝含义这种方式需要四次数据拷贝和四次上下文切换:数据从磁盘读取到内核的read buffer数据从内核缓冲区拷贝到用户缓冲区数据从用户缓冲区拷贝到内核的socket buffer数据从内核的socket ...原创 2019-03-03 15:28:12 · 4433 阅读 · 0 评论 -
select, poll, epoll区别
select,poll,epoll都是IO多路复用的机制,且都是同步阻塞的。所谓,I/O多路复用就通过一种机制,监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。与多进程和多线程技术相比,I/O多路复用技术的最大优势是系统开销小,系统不必创建进程/线程,也不必维护这些进程/线程,从而大大减小了系统的开销。但select,poll,epoll本质上都...原创 2019-03-16 17:36:50 · 291 阅读 · 0 评论