linux的sleep函数有什么用
发布网友
发布时间:2022-04-29 01:53
我来回答
共1个回答
热心网友
时间:2022-06-28 01:35
sleep把进程的运行状态改为睡眠,将其从系统可执行队列去掉,这样系统就不会调度到该进程,不会分配CPU时间片。同时根据该进程的睡眠时间,将进程挂入相应的定时器队列中。
同时内核维持一个定时器队列,每一次时钟中断处理,都把当前到期的队列中的进程唤醒,加入到可运行进程队列中。 同时对所有挂入定时器队列中的进程时间值减1,
[cpp] view plain copy
clock_t start=clock();
sleep(5);
clock_t end=clock();
float time=(float)(end-start)/CLOCKS_PER_SEC;
printf("Sleep clock:%f\n",time);
首先获取当前系统滴答数A,然後再加上需要sleep的时长结合CPU时钟频率计算得到的滴答数B。再来一个while循环,循环体中不停获取当前滴答数,大於(A+B)时跳出循环,函数返回。