开发者社区> 问答> 正文

睡眠:(睡眠或usleep)不是在Linux中挂起线程中的所有内容,而是在Windows中?为什么?

在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括起来的括号数字。它正在运行循环,只是直到睡眠完成才打印出数字。????

展开
收起
祖安文状元 2020-01-06 16:31:39 905 0
1 条回答
写回答
取消 提交回答
  • 输出被缓冲。您看不到圆点,但它们像发条一样发出。

    如果添加

    fflush(stdout);
    
    

    或输出字符串的换行符,您应该会看到圆点定期出现。

    2020-01-06 16:31:45
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载