<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    云自無心水自閑

    天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
    posts - 288, comments - 524, trackbacks - 0, articles - 6
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Netty insight

    Posted on 2014-11-21 14:18 云自無心水自閑 閱讀(533) 評論(0)  編輯  收藏
    Netty
    1. there're 2 EventLoopGroup in netty, bossGroup and workerGroup, (1 implementation NioEventLoopGroup is a kind of thread pool)
    2. bossGroup is Acceptor,is responsible for creating Channels for incoming connection requests
    3. workerGroup is the Reactor/Selector?, handling I/O requests. 
    4. a thread in bossGroup will be listening in the port, Once a connection has been accepted workerGroup assigns an EventLoop to its Channel
    5. multiple channels can be registered into 1 EventLoop, multiple EventLoops will exist in workerGroup
    6. workerGroup will iterate all the EventLoop, and iterate all the channels in EventLoop, if any of the channel is ready to execute/process
    7. it will invoke all the channelHandlers in the channelPipeline
    8. ChannelPipelines are containers for chains of ChannelHandlers which executed in order
    9. There are, in fact, two ways of sending messages in Netty. You can write directly to the Channel or write to the ChannelHandlerContext object. The main difference is that the former approach causes the message to start from the tail of the ChannelPipeline, while the latter causes the message to start from the next handler in the ChannelPipeline.
    10. While the I/O thread must not be blocked at all, thus prohibiting any direct blocking operations within your ChannelHandler, there is a way to implement this requirement.
    You can specify an EventExecutorGroup when adding ChannelHandlers to the ChannelPipeline.
    This EventExecutorGroup will then be used to obtain an EventExecutor, which will execute all the methods of the ChannelHandler.
    This EventExecutor will use a different thread from the I/O thread, thus freeing up the EventLoop.

    Channel ch = ...;
    ChannelPipeline p = ch.pipeline();
    EventExecutor e1 = new DefaultEventExecutor(16);
    EventExecutor e2 = new DefaultEventExecutor(8);
     
    p.addLast(new MyProtocolCodec());
    p.addLast(e1, new MyDatabaseAccessingHandler());
    p.addLast(e2, new MyHardDiskAccessingHandler());

    http://stackoverflow.com/questions/12928723/netty-4-eventloopgroup-eventloop-eventexecutor-thread-affinity



    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲综合日韩久久成人AV| av无码国产在线看免费网站| 美女羞羞免费视频网站| 国产亚洲精品成人久久网站| 中文字幕版免费电影网站| 免费91麻豆精品国产自产在线观看 | 美女黄网站人色视频免费| 四虎免费大片aⅴ入口| 国产免费一区二区三区VR| 亚洲一级特黄大片无码毛片| 久久精品亚洲综合一品| 亚洲xxxxxx| 色吊丝性永久免费看码 | 亚洲人成电影网站久久| 美女羞羞喷液视频免费| 亚洲?V乱码久久精品蜜桃| 亚洲av鲁丝一区二区三区| 亚洲国产精品自在自线观看| 好紧我太爽了视频免费国产| 久久精品国产精品亚洲艾草网| 久久精品无码专区免费东京热| 国产中文字幕免费观看| xvideos永久免费入口| 最近中文字幕无吗高清免费视频| 国产亚洲精品AA片在线观看不加载| 亚洲国产美女视频| 你是我的城池营垒免费观看完整版 | 人人狠狠综合久久亚洲88| 亚洲av永久无码精品网址| 亚洲一区在线免费观看| 亚洲天堂久久精品| 国产区在线免费观看| 免费人成视频x8x8入口| 亚洲日本一线产区和二线 | 少妇性饥渴无码A区免费| 免费A级毛片无码A| 日本一区午夜艳熟免费| 亚洲啪啪免费视频| 亚洲高清视频免费| 亚洲综合激情视频| 久久一本岛在免费线观看2020|