1.netty基本概念
来源:互联网 发布:仙剑三mac版 编辑:程序博客网 时间:2024/06/05 23:54
一.Java NIO
1.java2002年引入了非阻塞IO,位于JDK1.4的java.nio包中
2.NIO相比BIO的好处:使用较少的线程就可以处理许多连接减少了cup切换和创建线程的开销,同时在没有读写操作的时候线程可以出去其他任务
3.Netty封装NIO的api,高负载下高效可靠地处理和调度IO是一件繁琐而且容易出错的任务,netty就处理了这些问题
二.Netty核心组件
Netty核心组件:
Channel:代表到一个实体(如硬件设备、文件、Socket等)的开放链接,可以翻译成通道是数据在双方之间传输的载体。能够被打开和被关闭、连接或者断开连接
回调:其实就是一个方法,一个回调被触发时,相关事件可以被一个interface-ChannelHandler的实现处理,主要是在操作完成后通知相关方
Future:提供了另一种在操作完成时通知应用程序的方式。这个对象可以看做是一个异步操作的结果的占位符,它将在未来的某个时刻完成,并提供对其结果的访问
事件和ChannelHandler:事件用来通知我们状态的改变或者操作的状态,使得我们可以基于已经发生的时间来触发适当的动作(记录日志、数据转换、流控制、应用程序逻辑)
Netty中可能由于如站数据或者相关状态改变而触发的事件包括:
连接已经被激活或者连接失活
数据读取
用户事件
错误事件
Netty中出站事件是未来将会触发的某个动作的操作结果,这些动作包括:
打开或者关闭到远程节点的连接
将数据写到或者冲刷到套接字
EventLoop:是一个线程驱动,处理一个channel 所有 IO事件,并且在这个EventLoop的整个生命周期都不会变。在netty内部将为每个Channel分配一个EventLoop,用来处理所有事件(注册感兴趣的事件,将事件派发给ChannelHandler,安排进一步动作)
三.linux的I/O模型简介
阻塞IO:
非阻塞IO:
IO复用:
信号驱动IO:
异步IO:
四.IO多路复用
- 1.netty基本概念
- netty 基本概念
- Netty-1、网络编程基本概念
- Netty初探-基本概念和相关类介绍
- Netty初探-基本概念和相关类介绍
- Netty——1、网络编程基本概念
- Netty——1、网络编程基本概念
- Netty构建游戏服务器(一)--基本概念与原理
- (socket-nio-netty学习-1)socket,NIO,AIO基本概念
- 1.基本概念
- 1. 基本概念
- 1.基本概念
- 1.基本概念
- Netty
- Netty
- Netty
- Netty
- Netty
- MySQL索引相关
- 登陆验证
- 日文分词工具Mecab用于中文分词
- 动画过渡效果
- 20171029 勇于挑战自己
- 1.netty基本概念
- C# lambda和Linq
- 从现在开始,每周坚持一个java知识点
- Codeforces Round #442 (Div. 2) 题解(877A~F)
- install kinnect senor on ubuntu
- [BZOJ2425][HAOI2010]计数(组合数学)
- ACM中国国家集训队论文集目录(1999-2009)
- Java中getResourceAsStream的用法
- JPEG 推荐的DC和AC系数的huffman(哈夫曼)码表