日期:2014-05-18  浏览次数:21183 次

写了一个socket通迅的程序,但过一会就cpu100% 最大的可能是什么
写了一个局域网的socket通迅的程序,客户端在100以内,每次运行一些时间后,从几分钟到几十分钟不等,就出现服务端cpu占用100%,通迅死掉的现像。我用的是异步通迅,请问这总情况可能的原因有哪些?

------解决方案--------------------
死锁,死锁
------解决方案--------------------
线程启动太多,一直运行,不释放资源。
每一个线程启动后,做完了自己的工作一定要退出,
如果你没有设置退出的条件,那么你的线程一直运行。
当然就占尽了所有的资源了。
------解决方案--------------------
检查循环内部的代码,循环是否不停地在执行中。
------解决方案--------------------
死锁不会100%吧。
这种情况,我个人觉得是你的服务端程序有问题,你的服务端程序在接收到信息并且护理完毕之后,并没有释放资源。
如果你的服务端的处理线程是你自己维护的thread,那么应该是你服务端程序的数据资源没有释放。
如果你的服务端的处理线程是使用异步来完成的,那么应该是你的异步执行方法有问题,里面有死循环,资源一直得不到释放。
好好检查一下你的处理线程的函数。