深入理解Apache Mina(5)---- 配置Mina的 线程模型
2009-09-16 00:00:00 来源:WEB开发网在上面的配置比较难以理解的地方就是Runtime.getRuntime().availableProcessors() + 1,它的意思就是由JVM根据系统的情况(即CPU的核数)来决定IO Processor的线程的数量。虽然这个线程的数量是在SocketAcceptor /SocketConnector 的构造器中进行的,但是对于SocketAcceptor /SocketConnector自身的线程没有影响,SocketAcceptor /SocketConnector的线程数量仍然为1。为SocketAcceptor /SocketConnector本身就封装了IO Processor,SocketAcceptor /SocketConnector只是由一个单独的线程来负责接收外部连接/向外部请求建立连接,当连接建立后,SocketAcceptor /SocketConnector会把数据收发的任务转交I/O Processor的线程。这个在本系列文章的《IoFilter和IoHandler的区别和联系》中的图示中可以看。
图中清晰的显示了IO Processor就是位于IoService和IoFilter之间,IoService负责和外部建立连接,而IoFilter则负责处理接收到的数据,IoProcessor则负责数据的收发工作。
关于配置IO Processor的线程数量还有一种比较“笨”的办法,那就一个一个试,你可以根据你的PC的硬件情况从1开始,每次加1,然后得出IO Processor的最佳的线程的数量。但是这种方式个人建议最好不要用了,上面的方法足矣。配置方法如下:
Java代码
<span><span style="font-size: small;">//从1--N开始尝试,N的最大数量为CPU核数+1
SocketAcceptor acceptor = new SocketAcceptor(N, Executors.newCachedThreadPool());
</span></span>
- ››apache设置域名绑定 以及绑定不起作用的排查
- ››apache rewrite将指定URL转向指定的几个服务器
- ››apache配置文件httpd.comf部分参数说明
- ››Apache+Mysql+PHP+phpMyAdmin+Mac OS X 10.7 Lion...
- ››深入理解JAR包
- ››apache+tomcat负载均衡_项目实例
- ››apache mysql php 源码编译使用
- ››深入分析Volatile的实现原理
- ››深入理解Flash Player的应用程序域(Application ...
- ››深入理解flash函数(AS2)
- ››Apache添加mod_aspdotnet.so支持ASP.NET配置指南
- ››Apache中改变php.ini的路径
更多精彩
赞助商链接