java 多线程写socket服务器端监听程序 有N(N>200)个客户连接同时连接上来,并且持续一段时间(同一线程每3秒发一次)往服务器发送数据,服务程序执行一段时间后就发生了内存溢出错误,这应该如何处理?求高手进来指点(分不够可以再加) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 服务程序执行一段时间后就发生了内存溢出错误数据量怎么样?可以考虑把请求的内容 如果相同的话放到 cache中,不要每次请求都查询数据库啦,操作文件啦之类的 你这应该是高并发的处理情况,不知道你程序的具体实现,不过可以用NIO异步,或者线程池。当然其他一些现成的socket网络框架,比如nina、netty等都可以处理(都是对NIO多线程的封装)。 服务器是同步多线程,处理比较简单,收到客户端一个连接请求则new一个新线程去处理 还是代码的事,要吗 有大量的new,要吗 有大量占用的资源 没释放。试试 jconsole 调试下吧。 jconsole 用的很少,好象看不到是哪里占的堆内存没释放 支持,用线程池控制,不停的new新的很容易挂,不过lz的内存溢出日志拿出来看看,也许是其它的,比如socketServer的毛病 是的,每当客户端有新连接过来再new一个新线程不过我现在的问题是线程的数目是不变的(一直200个连接,一个连接一个线程),只是每个线程一直在运行 困扰了很久的一个问题 初学者问题~~ xml修改问题 怎么获取系统相关路径 问:静态变量消耗内存多还是静态类消耗内存多呢?? 谁有上次JAVA CUP的题目啊? XML处理问题,求问高手! 我想学java, 请问看什么书入门较好; 可否解释一下wrap class(包装类)有什么用处? 谁的网速快,帮我DOWN点东西,谢谢! Java 如何把word转化为swf或PDF java 线程问题
数据量怎么样?可以考虑把请求的内容 如果相同的话放到 cache中,不要每次请求都查询数据库啦,操作文件啦之类的
试试 jconsole 调试下吧。
不过我现在的问题是线程的数目是不变的(一直200个连接,一个连接一个线程),只是每个线程一直在运行