码迷,mamicode.com
首页 > Web开发 > 详细

netty学习总结(一)

时间:2018-05-20 13:04:56      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:一个   ima   发送   tty   soc   技术   很多   分享图片   ini   

    netty是一个nio框架,将java的nio进行了一个封装,形成了一个高性能,高可用的网络编程框架,很多的框架都是基于netty的,所以学好netty是很有用的,而且netty本身的代码结构设计,以及一些思想都是十分优秀的,对我们的编程能起到一个很好的的帮助。

  首先netty有几条主线分别是:

    1.server端的启动

    2.client端的启动

    3.client端的连接

    4.消息的读取

    5.消息的发送

今天先看下server端的启动

技术分享图片

我们可以看到最主要的一共有三步

  init   ----- 初始化nioServerSocketChannel

  register ----  为channel绑定一个线程 ,并注册读事件,还会触发 fireChnnelActive 和fireChannelRegister事件

  doBind  -----  执行真正的绑定

要更深入netty我们需要了解一下几点:

  1.每一个channel的整个生命周期只有一个netty分配的线程为他工作,这么做可以保证一个channel内部的事件处理都是线程安全的,特别是handler的处理都是线性的,注意是netty分配的线程,如果是你自己在channel的生命周期里面重启一个就令当别论了。

  2.netty分配的线程可能同时有多个channel共用,netty的线程模型是很简单的,有时间我会单独说下线程模型。

  当启动一个服务端的时候会根据配置的Channel进行初始化,为他进行一个配置,例如id,pipeline(这里面含有处理器链),unsafe(某些实际的操作,例如java层面的channel的注册)。初始化后会为他注册一个线程,并触发active事件和register事件,执行一个java层面的绑定操作。

 

 

  

 

netty学习总结(一)

标签:一个   ima   发送   tty   soc   技术   很多   分享图片   ini   

原文地址:https://www.cnblogs.com/zcmzex/p/9059977.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!