thrd_sleep
定义于头文件 <threads.h>
|
||
int thrd_sleep( const struct timespec* duration, struct timespec* remaining ); |
(C11 起) | |
阻塞当前线程的执行,至少直至经过 duration
所指向的基于 TIME_UTC 的时长。
若收到不忽略的信号( signal ),则可以较早地从休眠恢复,。此情况下,若 remaining
非 NULL ,则存储剩余时长到 remaining
所指向的对象中。
参数
duration | - | 指向要休眠的时长的指针 |
remaining | - | 指向要放置中断剩余时间的对象的指针。可为 NULL ,此情况下忽略它 |
返回值
成功休眠时为 0,若出现信号则为 -1 ,若出现错误则为其他负值。
注意
duration
和 remaining
可以指向相同对象,这会简化函数在信号后的重新运行。
实际休眠时间可能长于请求,因为它会被向上舍入到计时器的粒度,而且还因为调度和环境切换开销。
此函数的 POSIX 等价版本是 nanosleep 。
示例
运行此代码
输出:
Time: Mon Feb 2 16:18:41 2015 Time: Mon Feb 2 16:18:42 2015
引用
- C11 standard (ISO/IEC 9899:2011):
- 7.26.5.7 The thrd_sleep function (p: 385)
参阅
(C11) |
让出当前时间片段 (函数) |