EndPoint提供基础的网络IO服务,用来实现网络连接和控制,它是服务器对外I/O操作的接入点。主要任务是管理对外的socket连接,同时将建立好的socket连接交到合适的工作线程中去。里面两个主要的属性类是Acceptor和Poller、SocketProcessor Acceptor类实现了
分类:
其他好文 时间:
2016-03-13 17:28:33
阅读次数:
183
前面的分析到,请求最终被封装成了一个SocketProcessor对象,放在Executors线程池中去执行。这些都还只是在tomcat内部的socket的处理层面上,那请求最终是如何被转到开发人员所写的servlet上的?
NioEndpoint.SocketProcessor所做的工作在私有方法doRun中
if (handshake ==
0)...
分类:
其他好文 时间:
2015-05-11 22:00:03
阅读次数:
239
将socket扔进线程池前需要定义好任务,要进行哪些逻辑处理由SocketProcessor定义,根据线程池的约定,作为任务必须扩展Runnable。用如下伪代码表示
protected class SocketProcessor implements Runnable {
public void run() {
对socket进行处理并输出响应报文;
连接数计数器减一腾出...
分类:
其他好文 时间:
2015-02-08 20:48:54
阅读次数:
149