帮忙看看,程序运行久了就狂占CPU ( 积分: 100 )

  • 主题发起人 主题发起人 mally
  • 开始时间 开始时间
M

mally

Unregistered / Unconfirmed
GUEST, unregistred user!
我用indy的tcpserver做了一个tcp服务器,一直监听,收到一个消息就启动一个线程去处理,线程很简单,只是最后要用一个同步函数去写一下主界面。有两个客户端,每隔5秒连接一次服务器,然后发送两个消息,然后断掉连接。
就这样的,服务器运行很稳定,只是运行久了,3、4个小时以后,服务器程序就会突然占用90%以上的cpu,我看了一下服务器程序的线程数量,很正常,在10个以下。
会有什么样的可能性导致服务器程序占用这么多CPU呢?大家帮忙分析一下。没辙了。。。
 
我用indy的tcpserver做了一个tcp服务器,一直监听,收到一个消息就启动一个线程去处理,线程很简单,只是最后要用一个同步函数去写一下主界面。有两个客户端,每隔5秒连接一次服务器,然后发送两个消息,然后断掉连接。
就这样的,服务器运行很稳定,只是运行久了,3、4个小时以后,服务器程序就会突然占用90%以上的cpu,我看了一下服务器程序的线程数量,很正常,在10个以下。
会有什么样的可能性导致服务器程序占用这么多CPU呢?大家帮忙分析一下。没辙了。。。
 
你从哪儿看到了服务器程序的线程数?贴一下你的代码吧,或许你觉得没有问题的地方,恰好是问题的所在。
 
可能有的进程有死锁。
 
線程執行完成以後要釋放資源。
 
问题恐怕不是出在通讯上 是你的程序逻辑有问题吧?
我做个N个这种通讯的没发现这种情况 除非一点有很多客户端连上来
 
我也碰到这个问题,死人,也是用tcp
 
客户端没关闭socket就“擅自”断掉了。是你的程序逻辑问题。
 
后退
顶部