1、netty抽象出两个线程池:BossGroup负责监听和建立连接 ;WorkerGroup 负责网络IO的读写

2、BossGroup 和 WorkerGroup 类型都是NioEventLoopGroup , 相当于一个事件循环组,这个组中含有多个事件循环,每一个事件循环都是NioEventLoop

3、NioEventLoop表示一个selector , 用户监听绑定在骑上的socket网络通讯

4、每一个Boos NioEventLoop循环执行3步:

a、轮询accept事件

b、建立连接,生成NioSocketChannel,并注册到workerGroup上

c、处理任务队列中的任务,即RunAllTasks

5、每个Worker NioEventLoop循环执行3步:

a、轮询读写时间

b、处理IO时间,在对应的NioSocketChannel上处理

Netty Reactor模型的更多相关文章

  1. 详细图解 Netty Reactor 启动全流程 | 万字长文 | 多图预警

    本系列Netty源码解析文章基于 4.1.56.Final版本 大家第一眼看到这幅流程图,是不是脑瓜子嗡嗡的呢? 大家先不要惊慌,问题不大,本文笔者的目的就是要让大家清晰的理解这幅流程图,从而深刻的理 ...

  2. Reactor三种线程模型与Netty线程模型

    文中所讲基本都是以非阻塞IO.异步IO为基础.对于阻塞式IO,下面的编程模型几乎都不适用 Reactor三种线程模型 单线程模型 单个线程以非阻塞IO或事件IO处理所有IO事件,包括连接.读.写.异常 ...

  3. Netty Reactor 线程模型笔记

    引用: https://www.cnblogs.com/TomSnail/p/6158249.html https://www.cnblogs.com/heavenhome/articles/6554 ...

  4. Netty Reator(三)Reactor 模型

    Netty Reator(三)Reactor 模型 Netty 系列目录 (https://www.cnblogs.com/binarylei/p/10117436.html) 本文介绍 DC Sch ...

  5. Netty 线程模型与Reactor 模式

    前言 Netty 的线程模型是基于NIO的Selector 构建的,使用了异步驱动的Reactor 模式来构建的线程模型,可以很好的支持成百上千的 SocketChannel 连接.由于 READ/W ...

  6. Netty源码分析--Reactor模型(二)

    这一节和我一起开始正式的去研究Netty源码.在研究之前,我想先介绍一下Reactor模型. 我先分享两篇文献,大家可以自行下载学习.  链接:https://pan.baidu.com/s/1Uty ...

  7. Netty源码 reactor 模型

    翻阅源码时,我们会发现netty中很多方法的调用都是通过线程池的方式进行异步的调用, 这种  eventLoop.execute 方式的调用,实际上便是reactor线程.对应项目中使用广泛的NioE ...

  8. [编织消息框架][网络IO模型]Netty Reactor

    严格来讲Netty Reactor是一种设计模式,一听模式两字就知道了吧,套路哈哈 Reactor中文译为“反应堆”. 看图netty处理流程 1.netty server 至少有两组reactor. ...

  9. eventloop & actor模式 & Java线程模型演进 & Netty线程模型 总结

    eventloop的基本概念可以参考:http://www.ruanyifeng.com/blog/2013/10/event_loop.html Eventloop指的是独立于主线程的一条线程,专门 ...

  10. Netty线程模型

    一.Reactor模型 1.单线程模型 Reactor单线程模型,指的是所有的IO操作都在同一个NIO线程上面完成,NIO线程的职责如下: 1)作为NIO服务端,接收客户端的TCP连接: 2)作为NI ...

随机推荐

  1. 让启动的jar包能打断点

    java  -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar rbpsems-web-2.0.0-SNAP ...

  2. C++程序设计实验二 数组、指针与C++标准库

    Info.hpp文件源码 #include<iostream> #include<string> #include<iomanip> using namespace ...

  3. codeforce D. Concatenated Multiples

    http://codeforces.com/contest/1029/problem/D 看C题的第一眼就觉得自己一定能做出来,结果就兴致勃勃地做了一天,最后做出来了.但看到这道题时,第一感觉就是&q ...

  4. codeforce C. Maximal Intersection

    http://codeforces.com/contest/1029/problem/C 从第一天吃晚饭做到第二天吃完饭--你无法想象我的代码曾经150行 o( ̄┰ ̄*)ゞ 找到所有线段最远的左边和最 ...

  5. flask相关

    app使用flask_session pip install flask_session from flask_session import Session app = Flask(__name__) ...

  6. Visual Studio 2017(vs2017)绿色便携版-北桃特供

    原版的VisualStudio2017有几十G,安装起来特别慢,不少用户叫苦连天.该版本是精简过的vs2017,且简化了原来的安装程序,特别适用于教学.个人开发者.某些要求不高的企业. 该绿色便携版是 ...

  7. css 网页置灰

    body *{ -webkit-filter: grayscale(100%); /* webkit */ -moz-filter: grayscale(100%); /*firefox*/ -ms- ...

  8. vue、iview、VeeValidate 表单验证完整

    1.main.js (1).安装vee-validate npm install vee-validate --save (2).安装vue-i18n npm install vue-i18n --s ...

  9. Software--C#--grammer_Delegate--Event

    2018-05-01 10:49:47 委托是一种类型,而事件是一个类或结构的成员,如同字段,属性.必须在类或结构中声明. 引申 -  Observe 观察者模式  Publish/Subscribe ...

  10. Jest - Testing Asynchronous

    When we test asynchronous, we use Axios to get the response. install the Axios npm i axios Cause we ...