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);
  • 相关阅读:
    Domino
    tomcat 部署 外网访问
    市场4
    android 源码下载编译
    SSIS
    代码审查工具
    mfc 常用控件
    屏蔽home
    MFC BEGIN_MESSAGE_MAP()
    社交产品
  • 原文地址:https://www.cnblogs.com/myitnews/p/11441523.html
Copyright © 2011-2022 走看看