gpt4 book ai didi

c++ - SLEEP: (Sleep or usleep) 不是在 Linux 中挂起我线程中的所有内容,而是在 Windows 中?为什么?

转载 作者:太空宇宙 更新时间:2023-11-04 10:00:16 36 4
gpt4 key购买 nike

在 Windows 中:

    for (int i = 0; i < 100; i++)
{
Sleep(100); // Sleep 100 ms in Windows
printf(".[%d] ", i);
}

结果是在 Windows 中每 100 毫秒出现一个带括号的数字。

在 Linux 中:

    for (int i = 0; i < 100; i++)
{
usleep(100000); // Sleep 100 ms in Linux
printf(".[%d] ", i);
}

结果是在 Linux 中每 100 毫秒出现一个 GROUP ob 括号内的数字。它正在运行循环,只是在 sleep 完成之前不打印出数字。 ????

最佳答案

输出被缓冲。你看不到这些点,但它们像发条一样发出。

如果你添加

fflush(stdout); 

或输出字符串的换行符,您应该会看到这些点有规律地出现。

关于c++ - SLEEP: (Sleep or usleep) 不是在 Linux 中挂起我线程中的所有内容,而是在 Windows 中?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56842886/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com