-
mina2多线程疑问30
<div class="iteye-blog-content-contain" style="font-size: 14px">在mina2中,如果在代码中使用了dfcb.addLast("executor", new ExecutorFilter(Executors.newCachedThreadPool()));拦截器,并且开了很多的客户端测试,发现后台的pool-3-thread线程会很多,有时候这个线程过多会出现内存溢出了说不能创建新的线程,最后会把客户端关闭了一部分或者自己停了;如果不加这个拦截器发现后天的NioProcessor会随着时间的增加阻塞总数也不断变大,不知道最后会不会回崩掉?mina2的线程到底该如何设置啊,网上也看了很多资料也了解了上面两种方式配与不配的区别。说一下我的业务:1、接收客户端数据,2、解析数据3、数据入库</div>2014年4月29日 08:51
2个答案 按时间排序 按投票排序
-
采纳的答案
回答一下问题:
如果不加这个拦截器发现后天的NioProcessor会随着时间的增加阻塞总数也不断变大,不知道最后会不会回崩掉?
不加拦截器的话,接收客户端数据与业务处理均在IoProcessor引用的线程池里处理,可能会产生阻塞,客户端延迟严重,最终会导致工作队列不断累积,内存不断增长
解决办法:
通用的做法是修改dfcb.addLast("executor", new ExecutorFilter(Executors.newCachedThreadPool()));
将cachedThreadPool修改为有上限的线程池,防止线程无限增长。2014年4月29日 09:10
-
1、首先将Executors.newCachedThreadPool()替换为自定义的ThreadPoolExecutor
设置合理的核心线程数、线程总数、采用定长阻塞容器、设置失败策略
2、解决接收和处理能力不匹配问题,主要是你接收速度快,处理速度慢,这个是和你业务有关系的,所以还要从业务上优化下2014年5月01日 12:20
相关推荐
mina java多线程开发框架 NIO
深入理解Apache_Mina_(5)----_配置Mina的线程模型[归类].pdf
mina2技术知识非常实用的 不用自己写多线程的东西的
Apache MINA 线程模型配置 Mina配置
mina2学习笔记
mina客户端示例,包括一些封闭的帮助类,编码器,解码器,用起来也比较简单,本人是打成jar包供其他项目使用的.
mina2源码
mina2核心框架5000个并发
NULL 博文链接:https://chinaestone.iteye.com/blog/435929
不错的MINA2源码呵,带有MINA2的原实例
mina2+spring结合实例
Apache Mina 2 官方教程翻译
Apache Mina 2 完全自学手册
Apache MINA2实用手册 Apache MINA2实用手册
Mina2源码分析,学习mina不可多得的文档资料
关于apache mina2 的学习资料 包括状态机
从源码和网上资料,总结了Mina2与Netty4的区别,主要是分析线程模型的Buffer,还提到了Netty4中引入的Google的优秀的序列化工具ProtoBuf
mina2推送demo客户端资源,测试过可以使用,正式可靠,比较试用学习
Mina2的中文用户手册,仅供互相学习参考,如有侵权立删
Mina文件上传的例子 mina mina2 file 文件上传