【发布时间】:2011-08-13 19:22:34
【问题描述】:
如何将我的线程(可能是进程)阻塞几纳秒或几毫秒(至少)?
请注意,我不能使用睡眠,因为睡眠的参数总是以秒为单位。
【问题讨论】:
-
您能解释一下为什么需要如此细粒度的等待吗?
-
一种实现用户自定义定时器的方法。
-
"nanoseconds or may be milliseconds" nano/milli = 1/1.000.000 -- 你应该确定你想要哪一个。一纳秒大约是 2-3 个 CPU 周期(假设为 2-3 GHz),所以大约是一两条机器指令。
-
好吧,仅仅调用和返回你的定时器函数就需要两打到 500 纳秒(以防缓存和/或 TLB 未命中)。就此而言,更精细不一定更好,因为更精细并不意味着更精确。操作系统提供的等待/超时功能(请参阅 R... 的回答)尽您所能合理获得。任何比这更好的东西都是愚蠢的。