睡眠:(睡眠或睡眠)不会在 Linux 中暂停我线程中的所有内容,但它会在 Windows 中暂停?为什么?
SLEEP: (Sleep or usleep) is not suspending everything in my thread in Linux but it does in Windows? why?
在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 括号内的数字。这是 运行 循环,只是在睡眠完成之前不打印出数字。 ????
输出已缓冲。你看不到这些点,但它们像发条一样发出。
如果你加上
fflush(stdout);
或输出字符串的换行符,您应该会看到这些点有规律地出现。
在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 括号内的数字。这是 运行 循环,只是在睡眠完成之前不打印出数字。 ????
输出已缓冲。你看不到这些点,但它们像发条一样发出。
如果你加上
fflush(stdout);
或输出字符串的换行符,您应该会看到这些点有规律地出现。