在维护代码的过程中,发现软件运行的CPU占用率居高不下,在4核的电脑上占用了25%的CPU.查阅资料的得知,这是可能是由于软件中出现了死循环. 经过对软件的一些测试,最终确定了死循环出现的位置——通讯的接受端. 由于在通讯中,软件需要一直监听网络端口,接受可能到来的消息,所以采用了最简单的一种接收方式: While(1) { Recv(……); } 在这种情况下,软件该线程进入了死循环:死循环始终占用着时间片不会释放,从而导致了CPU占用率过高. 要解决这个问题,首先要解决通讯的接收问题,也就是