mina流程图如下:
线程模型会涉及到三个线程池,
一,数目为一, 监听socket的线程。 包括服务器主socket和所有accept到的socket
二, ioprocess线程池(如图),处理io的读写,数目一般为cpu核心+1
new NioSocketAcceptor(Runtime.getRuntime().availableProcessors()+1);
三,executorfilter线程池(如图,数目根据性能配置,这个线程池处理业务逻辑,防止业务逻辑时间过久,堵塞io, 虽然放在filter中,但往往是放在filter的最后
acceptor.getFilterChain().addLast("modelthreadpool", executorFilter);
其中,如果第二三个线程池中任意一个占满,则不能建立任何session, 在IoHandlerAdapter中,只能有sessionCreated, 不能到达sessionOpened
本文深入解析mina流程图,详细介绍其线程模型及三个核心线程池的作用:监听socket的线程、ioprocess线程池和executorfilter线程池。阐述了线程池如何协同工作,以及当任一线程池满载时如何影响session建立。
2197

被折叠的 条评论
为什么被折叠?



