任务定义器——SocketProcessor

简介: 将socket扔进线程池前需要定义好任务,要进行哪些逻辑处理由SocketProcessor定义,根据线程池的约定,作为任务必须扩展Runnable。用如下伪代码表示protected class SocketProcessor implements Runnable {        public void run() {对socket进行处理并输出响应报文;连接数计数器减一腾出通道;关闭socket;        } }     任务主要分为三点:处理socket并相应客户端、连接数计数器减一、关闭socket。

将socket扔进线程池前需要定义好任务,要进行哪些逻辑处理由SocketProcessor定义,根据线程池的约定,作为任务必须扩展Runnable。用如下伪代码表示

protected class SocketProcessor implements Runnable {

        public void run() {

对socket进行处理并输出响应报文;

连接数计数器减一腾出通道;

关闭socket;

        }

 }

     任务主要分为三点:处理socket并相应客户端、连接数计数器减一、关闭socket。其中对socket的处理是最重要也是最复杂的,它包括对底层socket字节流的读取、http协议请求报文的解析(请求行、请求头、请求体等信息的解析)、根据请求行解析得到路径去寻找相应主机上web项目的资源、根据处理的结果组装好http协议响应报文输出到客户端。此部分是web容器的核心,往下将一一剖析。引入任务定义器后整个模块变为如下:




点击订购作者《Tomcat内核设计剖析》




目录
相关文章
|
应用服务中间件 PHP nginx
PHP ERROR: Unable to create the PID file (/usr/var/run/php-fpm.pid).: No such file or directory (2)
PHP ERROR: Unable to create the PID file (/usr/var/run/php-fpm.pid).: No such file or directory (2)
455 1
|
架构师 算法 Java
阿里年薪百万的P7架构师简历都长什么样?他们都是怎么学习的?
我有一个朋友最近想从一个中型企业跳槽到大厂,目标瞄准了美团、滴滴、字节跳动等大厂,但投了简历,都石沉大海了!
|
存储 算法 数据可视化
算法金 | D3blocks,一个超酷的 Python 库
D3Blocks是一个基于d3.js的Python图形库,用于创建吸引人的数据可视化图表,如D3graph、Elasticgraph和Sankey图。拥有超过470个Star,其特点包括简易性、功能丰富、易用性、可定制性和及时更新。通过pip安装后,用户能轻松创建粒子图和其他图表。文中展示了实战应用,如能源数据集的网络图,通过调整节点和边的属性实现个性化展示。关注作者,享受智能乐趣。
209 8
算法金 | D3blocks,一个超酷的 Python 库
|
运维 监控 Java
(十)JVM成神路之线上故障排查、性能监控工具分析及各线上问题排错实战
经过前述九章的JVM知识学习后,咱们对于JVM的整体知识体系已经有了全面的认知。但前面的章节中,更多的是停留在理论上进行阐述,而本章节中则更多的会分析JVM的实战操作。
333 1
|
机器学习/深度学习 Linux TensorFlow
【Tensorflow 2】解决tensorflow.python.framework.errors_impl.UnknownError: [_Derived_] Fail to find the...
本文解决了在使用TensorFlow 2.0和Keras API时,尝试使用双向LSTM (tf.keras.layers.Bidirectional) 出现的未知错误问题,并提供了三种解决该问题的方法。
353 3
|
缓存 Java 数据库连接
MyBatis一级缓存解密:深入探究缓存机制与应用场景
MyBatis一级缓存解密:深入探究缓存机制与应用场景
212 2
MyBatis一级缓存解密:深入探究缓存机制与应用场景
|
JavaScript Windows
NodeJS 安装及环境配置
NodeJS 安装及环境配置
205 1
|
tengine 安全 应用服务中间件
带你读《2022龙蜥社区全景白皮书》——6.1.2 系统安全场景的加解密加速方案(上)
带你读《2022龙蜥社区全景白皮书》——6.1.2 系统安全场景的加解密加速方案(上)
478 98
|
XML Java 程序员
玩转 Android 嵌套滚动
Android 嵌套滚动
280 0
|
消息中间件 Java Kafka
springboot整合kafka和zookeeper简易示例(win平台)
springboot整合kafka和zookeeper简易示例(win平台)
242 0