zoukankan      html  css  js  c++  java
  • Netty线程模型

    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);
  • 相关阅读:
    使用iptables禁止外网访问tomcat的8080端口
    解决ie浏览器下载apk或ipa变为zip
    'ᄈ'
    centos上安装grafana
    vertica单节点故障恢复 Startup Failed, ASR Required
    vertica审计日志
    centos安装nginx1.17.9
    centos上nginx转发tcp请求
    centos 安装mysql8.0.16
    centos下导出docx为html
  • 原文地址:https://www.cnblogs.com/myitnews/p/11441523.html
Copyright © 2011-2022 走看看