APR连接器的思路和bio,nio的整体架构也是类似的,可以看到下面的整体框图: 第一个区别是,对于从Acceptor线程中的socket解析这块,无论是nio还是bio都是在Acceptor线程内直接阻塞执行的,对于APR通道,搞出一个SocketWithOptions的线程,专门执行这个socket解析的工作,然后直接交给Poller线程进行poll: 其次,SSL交互和socket接收等等都是调用tomcat-native的JNI的代码来完成的. 下面通过源码分析,讲讲整个框图中比较核心的…