15,472
社区成员
发帖
与我相关
我的任务
分享
//该写法会导致部分服务器写入的媒体数据不全
while(1)
{
if(队列不为空)
执行写入
sleep(1);
}
//经测试,该写法正常,CPU占用也低,不会有数据漏写的情况
while(1)
{
while(队列不为空)
执行写入
sleep(1);
}
还有其他的方式,和第二种写法类似,计算运行时间,达到一定时间再运行sleep,这样就不会导致线程执行效率低,导致数据写入不完整,而由于每隔一定时间会执行sleep,也不回导致CPU占用过高。