15:38:31 %usr %sys %wio %idle (-u)
15:38:32 0 0 0 100
15:38:33 0 0 0 100
15:38:34 0 4 58 38
15:38:35 0 1 99 0
15:38:36 0 4 25 71
15:38:37 0 0 0 100
15:38:38 0 11 0 89
15:38:39 0 1 0 99
15:38:40 0 0 0 100
15:38:41 0 4 32 64
15:38:42 0 0 100 0
15:38:43 0 0 100 0
15:38:44 0 2 48 50
15:38:45 0 0 0 100
15:38:46 0 12 0 88
程序:
timer
{
fun; //时间到调用的函数
interval; //时间间隔
remain; //剩余时间
}
signal(SIGALARM, TimFun)
alarm(1)
timer Tim[MAX];
TimFun()
{
for(i = 0; i < MAX ; i++)
{
Tim[i].remain--;
if (Tim[i].remain <= 0)
{
Run(Tim[i]. fun ); //定时到调用函数
Tim[i]. remain =Tim[i]. interval //重置
}
signal(SIGALARM, TimFun);
alarm(1);
}
请问这主要是什么原因造成的资源使用高!!(应该不是被调用函数Tim[i].fun的原因, 因为用另一种方法调起所有的fun后在fun里死循环+sleep 就不会有这么高的资源使用)