我想知道tomcat NIO连接器的内部结构.当我们创建一个实现CometProcessor的servlet时,线程究竟是如何使用的呢?它仍然是每个连接一个线程吗?
从我读到的,谈话就像这样
客户端连接到servlet
Servlet会挂起连接,直到连接的客户端可以获得任何数据
数据准备就绪后,服务器会写入httpResponse并将其刷新.这实际上断开了连接?
客户端发送另一个服务器再次挂起的请求.
当这种情况持续发生时会使用多少个线程?
在负载测试期间测试Tomcat NIO连接器时,我们想到了这一点.我使用ThreadLocal另外我使用Spring,我知道在几个地方它也使用它.
由于NIO连接器每个连接没有一个线程,我担心如果ThreadLocal对象在清理之前与另一个线程共享,则可能导致很难找到错误.但是,我认为这不是一个问题,因为它不是我能找到的文件警告,也没有发现任何其他帖子警告这一点.我假设NIO连接器对服务于实际请求的线程没有影响.
在我采用这个假设之前,我希望找到一些具体的证据.