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



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); 

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

相关内容

  • 没有找到相关文章

最新更新