概述
首先, 我会说不保证你在使用者模式 (user-mode) 中执行的行程
(process) 能够精确地控制时序因为 Linux 是个多工的作业环境. 你在执行中的行程 (process)
随时会因为各种原因被暂停大约 10 毫秒到数秒 (在系统负荷非常高的时候). 然而, 对於大多数使用 I/O 埠的应用而言,
这个延迟时间实际上算不了什麽. 要缩短延迟时间, 你得使用函式 nice 将你在执行中的行程 (process ) 设定成高优先权(请参考
nice(2)
使用说明文件) 或使用即时排程法 (real-time scheduling) (请看下面).
如
果你想获得比在一般使用者模式 (user-mode) 中执行的行程 (process) 还要精确的时序, 有一些方法可以让你在使用者模式
(user-mode) 中做到 `即时' 排程的支援. Linux 2.x 版本的核心中有软体方式的即时排程支援; 详细的说明请参考
sched_setscheduler(2)
使用说明文件. 有一个特殊的核心支援硬体的即时排程; 详细的资讯请参考网页
休息中 (Sleeping) :
sleep()
与
usleep()
现在, 让我们开始较简单的时序函式呼叫. 想要延迟数秒的时间, 最佳的方法大概 是使用函式
sleep()
. 想要延迟至少数十毫秒的时间 (10 ms 似乎已是最短的 延迟时间了), 函式
usleep()
应该可以使用. 这些函式是让出 CPU 的使用权 给其他想要执行的行程 (processes) (``自己休息去了''), 所以没有浪费掉 CPU 的时间. 细节请参考
sleep(3)
与
usleep(3)
的说明文件
最后
以上就是害怕书本为你收集整理的linux usleep 函数,Linux 高精確的時序(sleep, usleep,nanosleep)的全部内容,希望文章能够帮你解决linux usleep 函数,Linux 高精確的時序(sleep, usleep,nanosleep)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复