thrd_sleep
来自 cppreference.com
定义于头文件 <threads.h> 中 |
||
int thrd_sleep( const struct timespec* duration, struct timespec* remaining ); |
(自 C11 起) | |
阻塞当前线程的执行,至少到 duration
指向的以 TIME_UTC 为基础的持续时间过去为止。
如果收到一个未被忽略的 信号,则睡眠可能会提前恢复。在这种情况下,如果 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
[编辑] 参考文献
- C17 标准 (ISO/IEC 9899:2018)
- 7.26.5.7 thrd_sleep 函数 (p: 281)
- C11 标准 (ISO/IEC 9899:2011)
- 7.26.5.7 thrd_sleep 函数 (p: 385)
[编辑] 另请参见
(C11) |
放弃当前时间片 (函数) |
C++ 文档 针对 sleep_for
|