thrd_sleep
|
定义于头文件
<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 函数 (页: 385)
参见
|
(C11)
|
让出当前时间片
(函数) |
|
C++ 文档
关于
sleep_for
|
|