请教优化算法减少CPU处理时间
辉歌 2003-09-19 04:42:04 在Sco Unix 5.05,Ansi C
现在有一个程序,单进程模拟多任务,就是一个while(true)循环。在此循环中,需要接收N个TCP连接数据,还需要接收N多个Udp数据。现在我们的处理是先接收tcp数据,处理完后,大概需要2~5s,然后接收UDP数据,处理完毕后,使用一个Wait函数,使程序睡眠规定的时间,该函数在超时或者有UDP数据到达时唤醒,进而进行循环。
然而,这么处理,很明显的将导致数据丢失。因为有可能在wait的时候,没有UDP数据过来,却有tcp数据。并且是大量的涌来。等到接收时,已经使接收缓冲区漫了。
我们一直没有想到方法。请教各位老大,有什么好的方法吗?