WEB开发网
开发学院软件开发Java 深入理解Apache Mina(5)---- 配置Mina的 线... 阅读

深入理解Apache Mina(5)---- 配置Mina的 线程模型

 2009-09-16 00:00:00 来源:WEB开发网   
核心提示: 在上面的配置比较难以理解的地方就是Runtime.getRuntime().availableProcessors()+1,它的意思就是由JVM根据系统的情况(即CPU的核数)来决定IOProcessor的线程的数量,深入理解Apache Mina(5)---- 配置Mina的 线程模型(3),

在上面的配置比较难以理解的地方就是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的区别和联系》中的图示中可以看。 

深入理解Apache Mina(5)---- 配置Mina的 线程模型

图中清晰的显示了IO Processor就是位于IoService和IoFilter之间,IoService负责和外部建立连接,而IoFilter则负责处理接收到的数据,IoProcessor则负责数据的收发工作。

关于配置IO Processor的线程数量还有一种比较“笨”的办法,那就一个一个试,你可以根据你的PC的硬件情况从1开始,每次加1,然后得出IO Processor的最佳的线程的数量。但是这种方式个人建议最好不要用了,上面的方法足矣。配置方法如下:

Java代码 深入理解Apache Mina(5)---- 配置Mina的 线程模型

<span><span style="font-size: small;">//从1--N开始尝试,N的最大数量为CPU核数+1  
SocketAcceptor acceptor = new SocketAcceptor(N, Executors.newCachedThreadPool());       
</span></span> 

上一页  1 2 3 4 5  下一页

Tags:深入 理解 Apache

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接