多线程服务器发生java.lang.OutOfMemoryError,请高手指点
我编写一个多线程服务器MiddleServer,主要起转发消息功能。即它和另一台Server通信,将接收到的消息实时发送给自身所有客户端。设计思想是将所有客户端连接(子线程类)放入一个Hashtable中。当收到Server发送的消息后遍历hashtable,将该消息添加到所有子线程类的发送队列中。当客户端断开连接时,关闭Socket连接和输入输出流。并调用removeClient()将其在hashtable中清除。
当MiddleServer运行30个小时左右后发生java.lang.OutOfMemoryError。从任务管理器中可以看到每建立一个连接,内存增加;断开连接后内存数无明显下降,也可能一直在缓慢增加。
请问各位高手问题出在哪些方面。关于多线程服务器中资源释放或垃圾回收应注意哪些问题?可否在程序中调用finalize()等方法手动清除?不胜感激!
问题点数:0、回复次数:3Top
1 楼Nightlee(夜来风雨声)回复于 2003-12-04 08:52:10 得分 0
gzTop
2 楼honlin(要节约用水,尽量和女友一起洗澡)回复于 2003-12-04 11:41:00 得分 0
……Top
3 楼mofei13975101162(莫非)回复于 2003-12-25 11:32:20 得分 0
致楼主,有没有解决呀,我也碰到类试问题,能否联系啊,我们一起解决这个问题,呵呵。我的e_mail wanghm@vishine.comTop




