睡眠:(睡眠或usleep)并没有将我的线程中的所有内容悬挂在Linux中,而是在Windows中悬挂吗?为什么

SLEEP: (Sleep or usleep) is not suspending everything in my thread in Linux but it does in Windows? why?

本文关键字:Linux 为什么 Windows usleep 线程 我的 并没有 睡眠      更新时间:2023-10-16

Windows:

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

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

在Linux中:

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

结果是在Linux中每100ms出来每100ms的OB括号数字。它正在运行循环,只是在睡眠完成之前不打印数字。????

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

如果添加

fflush(stdout); 

或输出字符串的新线,您应该看到这些点会定期出现。