Netty支持单线程、主线程模型、主从多线程模型。

我们在创建线程组的时候,如果不传递参数,则默认构建的线程组线程是CPU核心数量。

一、单线程模型

在ServerBootstrap调用方法group时,传递的参数是同一个线程组,且在构造线程组的时候,构造参数为1,这种开发方式,就是一个单线程模型。

个人机开发测试使用,不推荐。

ServerBootstrap bootstrap = new ServerBootstrap();
EventLoopGroup group = new NioEventLoopGroup(1);
bootstrap.group(group, group);

二、主线程模型

在ServerBootstrap调用方法group的时候,传递的参数是两个不同的线程组。负责监听的线程组,线程数为1,即构造参数为1。负责处理客户端任务的线程组,线程数大于1,即构造参数大于1。这种开发方式,就是多线程模型。

长连接,且客户端数量较少,连接持续时间较长情况下使用。如:企业内部交流应用。

//监听请求线程组
EventLoopGroup acceptorGroup = new NioEventLoopGroup(1);
//处理客户端任务线程组
EventLoopGroup clientGroup = new NioEventLoopGroup(); ServerBootstrap bootstrap = new ServerBootstrap();
bootstrap.group(acceptorGroup,clientGroup);

三、主从多线程模型

在ServerBootstrap调用方法group的时候,传递的参数是两个不同的线程组。负责监听的线程组,线程数大于1,即构造参数大于1。负责处理客户端任务的线程组,线程数大于1,即构造参数大于1。这种开发方式,就是主从多线程模型。

长连接,客户端数量相对较多,连接持续时间较长的情况下使用。如:对外提供的相册的服务器。

EventLoopGroup acceptorGroup = new NioEventLoopGroup();
EventLoopGroup clientGroup = new NioEventLoopGroup();
ServerBootstrap bootstrap = new ServerBootstrap();
bootstrap.group(acceptorGroup, clientGroup);

最新文章

  1. php五种常见的设计模式(转载)
  2. pip安装MySQL-python报错
  3. plist文件的读写
  4. 踩坑事件:windows操作系统下的eclipse中编写SparkSQL不能从本地读取或者保存parquet文件
  5. Form onsubmit 事件 阻止表单提交() 必须选中同意选项才可以提交
  6. 1、C语言基本数据类型
  7. AngularJs自定义指令详解(6) - controller、require
  8. 找出如下数组中最大的元素和最小的元素, a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}
  9. sql openxml sp_xml_preparedocument xml 中文乱码
  10. Failed to load libGL.so in android
  11. 升级Mac osx 10.10 后安装php 的mcrypt extension
  12. arm-linux-gcc编译器测试
  13. Microsoft Edge与Google Chrome那些不同的举止
  14. ZOJ 3940 Modulo Query
  15. 负载均衡软件LVS分析一(概念)
  16. Eclipse: eclipse文本文件编码格式更改(GBK——UTF-8)
  17. Java面向对象 正则表达式
  18. 【问题记录】使用FreeMarker生成数据,模板明明没错却一直报错“The following has evaluated to null or missing:”
  19. Three failed attempts of handling non-sequential data
  20. Cygwin配置总结

热门文章

  1. NOIP模拟赛 拓展
  2. NOIP 2011 提高组初赛错题简析
  3. 经典排序 python实现
  4. Ubuntu无法正常输入英文单引号符号 + 误删除package导致系统设置异常(解决方案)
  5. 大话设计模式Python实现-外观模式
  6. D3力布图绘制--节点间的多条关系连接线的方法(转)
  7. Vue.js 源码分析(三) 基础篇 模板渲染 el、emplate、render属性详解
  8. MySQL for OPS 08:MHA 高可用
  9. Zabbix图表中文乱码(包含Docker安装乱码)
  10. 2019-11-29-WPF-模拟触摸设备