zoukankan      html  css  js  c++  java
  • java io 网络编程 高性能NIO

         很久没写了,一是觉得这后台不怎么方便,二是 写的时候突然觉得没兴趣了。

     还好,今天突然想记一下,那就随便写吧。   

          

         1.一开始还是放几个连接。

          什么是 同步,异步,阻塞,非阻塞 : http://blog.csdn.net/historyasamirror/article/details/5778378

              从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式:http://blog.csdn.net/cutesource/article/details/6192016

                 相关文档: Scalable IO in Java

                 

               2.由于最近的一个项目要用到网络编程,以后也没怎么用过,只是网上看过一些,实际经验并不足,没办法从Tomcat7.0.2(具体版本号不记得了),把里面的

    NIO给抽出来了,弄了个NIO_Server,还行,能用。但后面由于数据量比较大时,总有点不放心,然后想着以后方便维护和扩展,打算采用Netty,于是最近又开始学习

    Netty 了,最新版本:netty-5.0.0.Alpha1,觉得这儿分析的不错:http://my.oschina.net/geecoodeer/blog?disp=1&catalog=0&sort=time&p=2

    但别人的总是别人的,自己不去肯,体会不到其中的差别。于是开始读源码贝。

        3.下面就写写自己的一些体会,那里写错了或不对向各位专家指点。

          

            NIO 模式都差不多,只是细节的处理和扩展性及场景考虑,也就是Jetty,Netty,Mina,Tomcat中都是NIO事件处理模块,模式(架构)都应该差不多,只

    是具体业务处理和扩展性不同巴了(目前我是这么认为的)。

          

          应该都是:一个或一组门神 (Accetpor) -------------->(一组Reactor)------>业务处理。跟餐馆差不多,几个负责招呼进门的,然后再分派给给里面相应

    服务的。然后.......然后看你要什么服务罗.................

          然后说说Netty,个人觉得Netty类层次各命名有点拗口,特别是什么EventLoop,EventLoopGroup,EventExecutor…………。我去,真难懂,反正我看起来比较费劲,最后觉得好像是这个感觉了:

                               

          1.凡是带Group,可以把Group想像成Pool,对应java里面的池子,一个Group调用引用的多个相应的不带Group的类。

                     2.EventExecutor应该线程调用者(也可以一个线程池),负责调用EventLoop(具体线程)处理相关业务。

                     3.流程大概是:EventExecutorGroup--->(调用)---->EventLoopGroup--->(调用)--->EventLoop--->处理业务,

    当然其中,每次调用都是交给EventExecutor(调用线程池)去做,由 EventExecutor.next选择相应的线程去调用各个调用者。

          4.至于其它,得接着看,只把一个例子或协议看懂了(也说是主流程弄懂了),其它的都一样,具体有兴趣的可以自己研究了…………。

      说明:学艺不精,哪儿写的不对,自己多考虑哈。。…。……………

                

  • 相关阅读:
    [JSOI2004]平衡点
    [HNOI2009]梦幻布丁
    蒜头君救人
    蒜头君的排序
    蒜头君的坐骑
    [ZJOI2006]超级麻将
    环状最大两段子段和
    洛谷P2480 [SDOI2010]古代猪文(卢卡斯定理+中国剩余定理)
    线性基学习笔记
    洛谷P2473 [SCOI2008]奖励关(期望+状压)
  • 原文地址:https://www.cnblogs.com/jpfss/p/10231795.html
Copyright © 2011-2022 走看看