首先,我会给你一些官方文档。
线程池是服务器可以处理的最大同时请求数。服务器有一个连接队列等待被线程处理。
请记住,一个线程将贯穿整个请求生命周期。也就是说,当它在处理业务逻辑、等待数据库完成、写入日志文件、发送/接收 WS 方法时,不仅是读取来自套接字的 HTTP 请求或向客户端写入 HTTP 响应时。
阅读:https://docs.oracle.com/cd/E18930_01/html/821-2431/abehk.html
HTTP 服务器正在侦听客户端请求,并且每个客户端都有一个相关联的连接队列,其中请求在等待从 线程池 中的线程进行处理。
这是存放等待服务的线程的地方。
阅读:https://docs.oracle.com/cd/E18930_01/html/821-2431/abegk.html
这个数字表示每个侦听套接字同时可以容纳多少个线程处于 accept mode
。Oracle 的文档建议将此数字保持在 CPU 数量以下。
也就是说,这是同时进行读/写的套接字数量。您可以认为它与线程池有直接关系,但请记住,一个线程不仅仅是从/向客户端读取/写入,还要处理请求。
阅读:http://docs.oracle.com/cd/E18930_01/html/821-2431/gkxjt.html
因此,您的服务器将为每个客户端(侦听套接字)设置一个队列,其中不能超过最大连接数。这些连接将由线程池处理,同时不能有超过接受者线程处理/接受套接字。
如果客户端请求等待时间超过超时时间,则会被拒绝。 最小线程池 确保您具有最少数量的线程,准备进行处理。而最大连接计数限制了您可以等待的侦听套接字 的总数。如果超过此限制,新连接将被拒绝。
希望能对您有所帮助。