日期:2014-05-16  浏览次数:20658 次

Linux 中关于sleep()函数的疑问

我想问一下,在这里的sleep(),是CPU执行到这条语句后什么也不干,就等5秒吗?? 还是怎么回事?
还有,这个sleep在哪个头文件中,我没包含任何关于sleep()的头文件但仍能执行,怎么回事??
------解决方案--------------------
是这样的,这里sleep是为了让子进程在父进程之后执行,试想如果子进程先执行完了,父进程就会永远阻塞在waitpid函数,等待那个已经结束的子进程。
------解决方案--------------------
楼主已经包含啦~~~就是那个unistd.h
sleep简单的说,类似使当前进程睡眠!楼主的程序中就是子进程睡眠啦~
进程睡眠,就是将进程挂起,不再占用CPU,自豪于CPU这功夫儿在干啥!要看系统的调度函数怎么调度的了,这个就设计到系统内核了,楼主想了解这方面的话,可以先了解下操作系统,然后好好看看linux内核的书就好了!
------解决方案--------------------
sleep让子进程自动放弃CPU,父进程在wait处阻塞。sleep完后、子进程会重新获得CPU执行exit。
------解决方案--------------------
引用:
楼主已经包含啦~~~就是那个unistd.h
sleep简单的说,类似使当前进程睡眠!楼主的程序中就是子进程睡眠啦~
进程睡眠,就是将进程挂起,不再占用CPU,自豪于CPU这功夫儿在干啥!要看系统的调度函数怎么调度的了,这个就设计到系统内核了,楼主想了解这方面的话,可以先了解下操作系统,然后好好看看linux内核的书就好了!


说得不错,这里cpu在干咋,还得看进程调度,这就是进程的作用,是内核调度的基本单位。
sleep函数让进程挂起,当父进程在等待着子进程之行完后才执行,不然就一直阻塞在哪里