`
daemon_chen
  • 浏览: 4266 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

5.Utm线程模型

阅读更多

Utm线程模型

 

游客请求和用户请求分别调用UserThreadModeFilter的handleVisitorRequest和handleUserRequest方法,之后再调用各自的过滤器(在UserThreadMode实例化时传入)处理。

默认的游客处理器:VisitorRequestFilterNotQueue:并没有采取队列的形式,直接调用线程池去处理请求。

默认的用户请求处理器:RequestFrequentFilter:将消息放入用户的qtm任务队列中,并触发qtm线程去处理请求;该Filter还会过滤用户频繁的请求( minGap毫秒内超过ringSize个请求,而且违反次数超过illegalMax次,则会认定请求过于频繁)(更详细说明可以查看该类的说明)

 

如下图,用户线程池为ExcutorService1,游客线程池为ExcutorService2,默认情况下两个使用的其实是同一个线程池,既:ExcutorService1= ExcutorService2,如需要修改,可以调用UserThreadMode的最基本的构造方法(该构造方法由开发者指定游客过滤器和用户过滤器(可以为其指定不同的线程池),其他的构造方法会尝试帮用户构建部分的内容,使得使用起来更加的方便)或者继承重写UserThreadMode的构造方法。

 

Utm对于用户任务队列的长度并没有限制,而执行线程池ExcutorService是会有长度限制的,utm使用的线程池必须继承LimitedUnboundedThreadPoolExecutor,该类的构造函数参数limitedQueueSize就是队列长度的限制,实际执行中有可能超过该长度,因为utm不会尝试抛弃重要的请求(用户退出、断线等IRequestHandler.isLimited返回false的处理器),但是如果是普通的请求,则当队列满的时候会调用该处理器的queueFull方法(建议只做简单处理,因为服务器队列满往往意味着已经不堪重负了(也有可能是队列长度和线程数量没有设置好,导致无法发挥服务器的处理能力))。

 

 

 

 

 

1. Utm简介

2. Utm 模块设计

3. Utm详细实现-用户生命流程

4. Utm详细实现-用户资源管理

5.Utm线程模型

6. Utm示例-公共部分

7. Utm示例-SmartFoxServer集成

8. Utm示例-Netty集成

 

分享到:
评论

相关推荐

    激光雷达UTM-30LX图像采集程序及数据C++

    C++库如PCL(Point Cloud Library)提供了强大的点云处理功能,可以将这些散乱的数据点转换成有序的点云模型,便于后续的三维重建和场景理解。 5. **应用示例** 数据采集和处理后的点云可用于多种应用,如障碍物...

    java_test.5

    标题“java_test.5”可能指的是一个Java编程的测试项目或练习,编号为5,这通常代表一系列学习或示例代码中的第五个部分。描述中提到的“structrue_at.csv”可能是一个CSV(逗号分隔值)文件,用于存储某种结构化...

    java编写的一个简单bbs网站完整代码

    2. **MVC设计模式**:作为一个Web应用,该项目可能采用了Model-View-Controller(模型-视图-控制器)设计模式,这是一种常见的Web应用程序架构,用于分离业务逻辑、数据模型和用户界面。 3. **数据库交互**:BBS...

    Visual C++开发GIS系统——开发实例剖析guangpan

    6. 多线程编程:为了实现高效的数据处理和响应,开发者可能需要使用多线程技术,让不同的任务在不同的线程上运行。 7. 地理编码和反编码:将地址转换为经纬度坐标(地理编码)和反之(反地理编码)是GIS系统中的...

    C++编写的GIS系统源代码

    1. **空间数据模型**:包括矢量数据模型(点、线、面)和栅格数据模型,这两种模型在GIS中都有其应用场景和优缺点。 2. **投影与坐标系统**:理解不同投影方式(如UTM、墨卡托等)及其转换对空间分析的影响。 3. **...

    vb.net_liang.rar_ae

    6. **多线程处理**:如果地图数据较大或者加载较慢,可能需要多线程处理,以避免阻塞UI。 7. **缓存策略**:为了提高性能,MapControl可能会采用缓存策略,预先加载并存储部分地图区域。 8. **API接口**:如果...

    Gps.rar_ .net gps_.net_.net gps_GPS_GPS .net

    5. **Geo坐标系统**: GPS坐标基于WGS84(World Geodetic System 1984)地理坐标系统,开发者需要了解如何将经纬度转换为其他坐标系统,如UTM(Universal Transverse Mercator)。 6. **地图API集成**: 为了显示GPS...

    2014年全国计算机等级考试《三级网络技术》上机考试冲刺试题(4).doc

    5. 子网掩码:255.255.255.192对应的子网掩码是/26,C选项正确。 6. 综合布线:多介质插座通常不用于连接UTP和STP,而是用于连接不同类型的介质,C选项错误。 7. 广域网QoS技术:RSVP是资源预留协议,用于QoS,A...

    osggis源码2016最新

    9. **多线程编程**:在处理大量数据时,多线程编程可能被用到,以提高程序运行效率和响应速度。 10. **扩展与自定义**:osggis作为一个源码库,可能设计为可扩展的,允许开发者根据需求添加新的数据格式支持或功能...

    OSG_Help.zip

    了解OSG的基本概念,如场景图、节点、几何对象、纹理和相机模型,对于理解osgEarth至关重要。 2. **地形渲染**:osgEarth的地形渲染功能强大,它可以加载多种地形数据格式,如USGS DEM、ASTER GDEM等,创建真实的3D...

    vc开发GIS矢量图形系统——开发实例剖析

    7. **投影与坐标系统**:GIS系统需要处理不同坐标系间的转换,如UTM、WGS84、地方坐标系等。 8. **空间索引**:如R树、Quadtree等,用于快速查询和操作大量地理对象。 9. **GIS库**:如GDAL/OGR(用于读写多种GIS...

    基于C#开发的迷你GIS系统

    3. **多线程处理**:处理大数据量时,利用多线程优化性能,提升用户体验。 4. **WPF(Windows Presentation Foundation)**:更高级的UI框架,可以构建更美观、交互性更强的地图界面。 5. **Entity Framework**:...

    WGS84BJ54两种空间直角坐标系的转换,由空间直角坐标到大地坐标的转换.zip

    它基于椭球体模型,其中的参考椭球体是WGS84椭球,其参数为长半轴a = 6378137米,扁平率f = 1/298.257223563。WGS84坐标系的原点位于地球的质心,Z轴指向地球的平均极轴,X轴通过格林尼治平均天文台,Y轴与X轴和Z轴...

    pyproj-1.9.6-cp27-cp27m-win-amd64.whl.zip

    1. **坐标系统转换**:pyproj库支持WGS84、UTM、经纬度等多种坐标系统的转换,可以方便地将地理位置数据在不同坐标系之间进行切换。 2. **地图投影**:它提供了多种地图投影方法,如Mercator、Lambert Conformal ...

    League-of-Legends-Chat-Control:LoL聊天控制的源代码-Chat source code

    4. **多线程与并发**:考虑到游戏聊天系统的高并发特性,源代码中可能会使用多线程或多进程技术来处理大量的并发聊天请求,确保系统的稳定性和性能。 5. **用户界面(UI)设计**:尽管主要关注后台逻辑,但开源项目...

    计算机软件-编程源码-肰isualC开发GIS系统.zip

    1. 数据模型:GIS系统的基础是地理数据,包括矢量数据(点、线、面)和栅格数据。开发者需要理解和掌握如何在内存中表示和操作这些数据。 2. 地图投影:由于地球是曲面,而地图是平面,所以必须进行投影转换。...

    zhengfansuan.rar_坐标正反算

    在测绘工作中,这涉及到平面直角坐标系统和大地坐标系统的转换,以及空间坐标系之间的转换,如UTM(Universal Transverse Mercator)和经纬度坐标系之间的转换。 1. **坐标正算**:坐标正算是指给定一个点的坐标值...

    基于C语言的摄影测量后方交会

    2. **相机模型**:相机模型是摄影测量的基础,通常采用简单针孔模型,其中每个像素与三维空间中的一个点相对应。相机的内参矩阵(包括焦距、主点坐标等)和外参矩阵(包括旋转角和平移量)是关键参数。 3. **坐标...

    电子地图(纯java编写)源码

    8. 异步处理与多线程:由于地图数据加载可能涉及网络通信,开发者可能使用Java的异步编程模型或者多线程技术,以确保用户界面的流畅性。 9. 导入与运行:项目中提到“内附操作方法”,意味着包含了如何在Eclipse...

    用Delph开发Gis系统.rar

    6. **地图投影**:由于地球是一个曲面,地图必须进行投影才能在平面上显示,因此GIS开发者需要理解不同的投影方式,如墨卡托投影、UTM投影等,以及它们在不同情况下的适用性。 7. **Delphi中的GIS库**:在Delphi中...

Global site tag (gtag.js) - Google Analytics