任务定义器——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内核设计剖析》




目录
相关文章
|
2月前
|
缓存 开发者 Python
定义函数
定义函数
10 1
|
2月前
|
存储 Serverless Python
定义函数的方法
在编程中,函数是一个非常重要的概念。函数是一段可以重复使用的代码,它接受输入(称为参数),执行一系列操作,然后可能返回一些输出。通过定义函数,我们可以提高代码的可读性、可维护性和复用性。本文将介绍如何定义函数,并附上相应的代码示例。
13 1
|
2月前
|
Serverless Python
为什么要定义函数
为什么要定义函数
28 1
C4.
|
2月前
|
Python
Phython定义函数
Phython定义函数
C4.
7 0
|
3月前
枚举变量的定义
【2月更文挑战第4天】枚举变量的定义。
29 6
|
7月前
|
编译器 数据库 C语言
8.3 C++ 定义并使用类
C/C++语言是一种通用的编程语言,具有高效、灵活和可移植等特点。C语言主要用于系统编程,如操作系统、编译器、数据库等;C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统、图形用户界面、嵌入式系统等。C/C++语言具有很高的效率和控制能力,但也需要开发人员自行管理内存等底层资源,对于初学者来说可能会有一定的难度。
24 0
|
7月前
|
存储 编译器
C 中的变量定义
C 中的变量定义。
37 1
|
Python
4 函数的定义及使用
4 函数的定义及使用
153 0
方法的定义
方法的定义
94 0
|
C#
类的定义
类的定义
96 0