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);
  • 相关阅读:
    EF中的EntityState几个状态的说明
    sql server 更新表,每天的数据分固定批次设置批次号sql
    bootstrap Validators
    马老师 生产环境mysql主从复制、架构优化方案
    PHP在微博优化中的“大显身手”
    将form表单转化为json数据
    免费资源库收集
    奇怪的php问题
    PHP 大数自动转换为科学计数法
    access database in a helper function ?
  • 原文地址:https://www.cnblogs.com/myitnews/p/11441523.html
Copyright © 2011-2022 走看看