热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

socket_图解tomcatSocketIO部分

篇首语:本文由编程笔记#小编为大家整理,主要介绍了图解tomcat-SocketIO部分相关的知识,希望对你有一定的参考价值。socket调测命令。IO线程与业务线程的

篇首语:本文由编程笔记#小编为大家整理,主要介绍了图解tomcat-Socket IO部分相关的知识,希望对你有一定的参考价值。


socket调测命令。IO线程与业务线程的模型。输入输出buffer设计。


图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

这两个字段都是并发链表队列,放的元素都是PollerEvent对象。


PollerEvent默认感兴趣状态是0(即空)reset后也是设置0状态。


NIOEndpoint有个字段是eventCache此处是PollerEvent对象的全局缓存。整个全局不论是Poller还是其他,只要需要PollerEvent对象,都是从这里poll一个,如果poll不到则new一个。用完之后再offer到这个队列里。此队列可以配置大小。


Pollerevents字段主要用于真正NIO事件对应的PollerEvent的存放。Poller线程会不停地events队列中的PollerEvent对象poll出来并调用其run方法。


Poller在注册NIOChannel时,即Acceptor接到accept事件后PollerEvent对象感兴趣的是OP_REGISTER。紧接着会把这个PollerEvent对象加入到Pollerevents队列中。


Http11ConnectionHandler在处理http请求与响应时,如果是异步处理阶段,诸如解析请求头时,此时在处理结束时会向Pollerevents队列中加入一个OP_READPollerEvent。用于后续继续read(因为是异步嘛,可能这一把还没有读取完)。这个阶段在tomcat内部称之为SocketState.LONG(异步解析)


SocketState.OPEN(keep-alive)也会向Pollerevents队列中加入一个OP_READ

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分

图解tomcat(1)-Socket IO部分



微信要求原创的内容要达到300字。可是我这是图也是我原创的啊。

哎±±±±±

我只好把其中一张全是字的图用文字再描述下。

另,第一次发这种全是图的,不知道在手机上阅读效果如何。




推荐阅读
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文介绍了在Android开发中使用软引用和弱引用的应用。如果一个对象只具有软引用,那么只有在内存不够的情况下才会被回收,可以用来实现内存敏感的高速缓存;而如果一个对象只具有弱引用,不管内存是否足够,都会被垃圾回收器回收。软引用和弱引用还可以与引用队列联合使用,当被引用的对象被回收时,会将引用加入到关联的引用队列中。软引用和弱引用的根本区别在于生命周期的长短,弱引用的对象可能随时被回收,而软引用的对象只有在内存不够时才会被回收。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • 微信官方授权及获取OpenId的方法,服务器通过SpringBoot实现
    主要步骤:前端获取到code(wx.login),传入服务器服务器通过参数AppID和AppSecret访问官方接口,获取到OpenId ... [详细]
  • 本文讨论了如何使用GStreamer来删除H264格式视频文件中的中间部分,而不需要进行重编码。作者提出了使用gst_element_seek(...)函数来实现这个目标的思路,并提到遇到了一个解决不了的BUG。文章还列举了8个解决方案,希望能够得到更好的思路。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 本文介绍了在PostgreSQL中批量导入数据时的优化方法。包括使用unlogged表、删除重建索引、删除重建外键、禁用触发器、使用COPY方法、批量插入等。同时还提到了一些参数优化的注意事项,如设置effective_cache_size、shared_buffer等,并强调了在导入大量数据后使用analyze命令重新收集统计信息的重要性。 ... [详细]
author-avatar
alive
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有