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