日期:2014-05-20  浏览次数:20751 次

关于mina2的线程池的问题
NioSocketConnector connector= ...;
connector.getFilterChain().addLast("threadPool", new ExecutorFilter(Executors.newCachedThreadPool());

对于这点不太懂!
向FilterChainBuilder中加入线程池后
线程池是如何对于connector进行管理的,如何对应的?
难道说filterChainBuilder.addLast("threadPool", new ExecutorFilter(Executors.newCachedThreadPool());
这样就让acceptor纳入了线程池的管理了么?
另外对于线程池数目大小的限制如何设置,
NioSocketConnector没有类似IoAcceptor acceptor = new SocketAcceptor(4, Executors.newCachedThreadPool());
这样设置处理单元的方法,那么如何管理处理单元的数目?

------解决方案--------------------
虽然不是很懂你说的那个, 但还是帮顶. 以前做的一个同步池, 也是类似的代码, 它是后台有个循环线程, 一旦有加入同步链表的数据, 就会自动接管连接的管理.
------解决方案--------------------
对于每个connector的建立jvm都会在后台启动一个进程,同一个加载器下的线程不需要对应不对应的。

穿件线程的时候可以这样控制线程数目:
Java code


Executor threadPool =Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()+1);
acceptor.getFilterChain().addLast("exector", new ExecutorFilter(threadPool));