-
-
[求助]sleep()
-
发表于: 2013-9-21 23:00 1697
-
深刻理解sleep()内部的每个调用,以及它的早期实现到现在的演变过程,可以帮助你理解--信号~
sleep()内部有sigaction()和alarm()这2个东西,如果程序中多处调用sleep(),这些alarm()和对SIGALRM的信号处理函数不会相互干扰,因为进sleep()先将SIGALRM设置为阻塞,同1个进程只允许有1个定时器,如果alarm(x)之前已经调用了1次alarm(),如果x大于上次调用离超时的剩余时间(本次调用alarm()的返回值),就必须等上次设置的定时器超,但《UNIX环境高级编程_第二版中文》的10-21这个程序,也没看到对alarm(nsecs)做返回值判断,以及我写一些含有定时器的程序时,sleep()会“失灵”,本想从这1章理解为什么的,可是现在还没有理顺。
sleep()内部有sigaction()和alarm()这2个东西,如果程序中多处调用sleep(),这些alarm()和对SIGALRM的信号处理函数不会相互干扰,因为进sleep()先将SIGALRM设置为阻塞,同1个进程只允许有1个定时器,如果alarm(x)之前已经调用了1次alarm(),如果x大于上次调用离超时的剩余时间(本次调用alarm()的返回值),就必须等上次设置的定时器超,但《UNIX环境高级编程_第二版中文》的10-21这个程序,也没看到对alarm(nsecs)做返回值判断,以及我写一些含有定时器的程序时,sleep()会“失灵”,本想从这1章理解为什么的,可是现在还没有理顺。
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
赞赏
看原图
赞赏
雪币:
留言: