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);
  • 相关阅读:
    二维差分与二维前缀和
    luogu P1854 花店橱窗设置
    HDU Multi-University Training Contest 4 HDU 6621 K-th Closest Distance
    POJ 3111-K Best (01分数规划)
    POJ 2976-Dropping tests(01分数规划入门)
    POJ 2796 Feel Good(单调栈)
    树状数组求逆序对
    树状数组学习笔记(线性初始化)
    UVALive 3905 Meteor (扫描线)
    Codeferce 1138B
  • 原文地址:https://www.cnblogs.com/myitnews/p/11441523.html
Copyright © 2011-2022 走看看