文档章节

Netty_EventLoop_EventLoopGroup

秋风醉了
 秋风醉了
发布于 2014/07/01 10:49
字数 318
阅读 321
收藏 0

All IO operations in Netty are performed asynchronously. 


Future和ChannelFuture

So when you connect to a host for example,  this  is  done  asynchronously(异步的)  by  default.  The  same  is  true when  you  write/send  a message.  This  means  the operation  may  not  be  performed  directly  but picked up  later  for execution. Because of this you can t know if an operation was successful or not after it returns, but need to be able to check later for success or have some kind of ways to register a listener which is notified. To rectify(纠正) this, Netty uses Futures and ChannelFutures. This future can be used  to  register  a  listener,  which  will  be  notified  when  an  operation  has  either  failed  or completed successfully. 


Netty EventLoop和EventLoopGroup

The  relationship  between  an  EventLoop and  an EventLoopGroup may  not  be immediately(立即马上)  intuitive(直观的),  because  we have  said  that  an EventLoopGroup contains  one or  more EventLoop but  this  diagram  shows  that  in  fact,  an  EventLoop passes  the   is-a EventLoopGroup test,  i.e.  an EventLoop is  an EventLoopGroup.   This means  wherever you can pass in an EventLoopGroup you can also just use a specific(具体的) EventLoop. 


figure  3.1  shows  why  the  design  Netty  uses  to  ensure  no  synchronization(同步)  is required on your part to process Netty events. 

EventLoop Thread relationship 

The EventLoop is always bound to a single Thread that never changed during it s life time. 

When a channel is registered, Netty binds that channel to a single EventLoop(and so to a single thread) for the life time of that Channel. This is why your application doesn t need to synchronize  on  Netty  IO  operations  because  all  IO  for  a  given Channel will  always  be performed by the same thread. 

all  IO  for  a  given Channel will  always  be performed by the same thread. 

=====END=====

© 著作权归作者所有

共有 人打赏支持
秋风醉了
粉丝 236
博文 578
码字总数 419908
作品 0
朝阳
程序员
第三章:Netty核心概念

这一章我们将讨论Netty的10个核心类。 Bootstrap ServerBootstrap EventLoop EventLoopGroup ChannelPipeline Channel Future ChannelFuture ChannelInitializer ChannelHandler 1.Crash Co......

李矮矮
2016/09/23
46
0
Netty源码分析(一)概览

准备将Netty的源码过一下,一来对自己是个总结消化的过程,二来希望对那些打算看Netty源码的人(已经熟悉Netty的Reactor模型)能有一些帮助。目前所看Netty版本是4.1.3.Final。 1 目录 - Ne...

乒乓狂魔
2016/08/17
334
0
Netty精粹之基于EventLoop机制的高效线程模型

Infoq有篇文章提到通过Netty4+Thrift压缩二进制编码技术有人实现了10W TPS(1K的复杂POJO对象)跨节点远程服务调用,对于RPC应用来说高性能的三个主题永远是IO模型、数据协议、线程模型,10W...

Float_Luuu
2016/02/21
6.9K
5
Netty源码分析(二)EventLoopGroup分析

准备将Netty的源码过一下,一来对自己是个总结消化的过程,二来希望对那些打算看Netty源码的人(已经熟悉Netty的Reactor模型)能有一些帮助。目前所看Netty版本是4.1.3.Final。 1 目录 - Ne...

乒乓狂魔
2016/09/06
421
0
第九章:引导Netty应用程序

本章介绍 引导客户端和服务器 从Channel引导客户端 添加多个ChannelHandler 使用通道选项和属性 上一章学习了编写自己的ChannelHandler和编解码器并将它们添加到Channel的ChannelPipeline中。...

李矮矮
2016/09/26
41
0

没有更多内容

加载失败,请刷新页面

加载更多

python生成HTML报告

# -*- coding=utf-8 -*-# author=zyqimport timeclass Template(object): '''html报告''' HTML_TEMP=''' <!DOCTYPE html> <html lang="en"> <head......

小白兔_球球
27分钟前
1
0
模型融合资料汇总

https://blog.csdn.net/u012526003/article/details/79109418https://blog.csdn.net/willduan1/article/details/73618677https://blog.csdn.net/wstcjf/article/details/77989963?utm_so......

KYO4321
29分钟前
1
0
热更步骤

根据官方文档: http://docs.cocos.com/creator/manual/zh/advanced-topics/hot-update.html version_generator.js文件放到项目根目录下 注意步骤的顺序: 1.构建 2.根据构建目录运行下面命令...

Valiancer
30分钟前
2
0
小程序重写CheckBox样式

CheckBox /* 重写 checkbox 样式 *//* 未选中的 背景样式 */checkbox .wx-checkbox-input{ border-radius: 50%; width: 40rpx; height: 40rpx;}/* 选中后的 背景样式...

originDu
34分钟前
1
0
mysql自动安装脚本

[root@localhost_04 ~]# cat mysql.sh #!/bin/bash# "################检查本机安装mysql的基本条件########################"echo "Checking  user :"d=`id -u`if [ $d ......

芬野de博客
47分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部