博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第一次遇到刷新缓冲区延时
阅读量:6271 次
发布时间:2019-06-22

本文共 723 字,大约阅读时间需要 2 分钟。

背景

  之前一直只是知道像 print 这样输出函数,存在一种可能,就是要打印的值还停留在缓冲区并没有被刷新到 std.out,这样我们在命令行中

  中看不到它的输出。   之前从来没有遇到过,而且还是可以稳定复现的那种。

 

看一下缓冲区刷新不及时的情况

import asyncioimport sysasync def main():    print("hello ",end=' ')    await asyncio.sleep(1)    print("world")if __name__ == "__main__":    asyncio.run(main())

  上面代码的输出如下:

python3 main.pyhello  world

  重点是“hello”与“world”是同时出现的,也就是说“hello”先停在了缓冲区中,等到“world”这个词到来之后再一起刷出绥中区

 

看一下主动刷新缓冲区的情况

import asyncioimport sysasync def main():    print("hello ",end=' ')    sys.stdout.flush()    await asyncio.sleep(1)    print("world")if __name__ == "__main__":    asyncio.run(main())

  虽然输出还是“hello world” 但是可以明显的看到“world”是在“hello”出现后 1s 之后才出现的。

 

 

---

转载于:https://www.cnblogs.com/JiangLe/p/10326637.html

你可能感兴趣的文章
sql游标的使用与exec的两种用法
查看>>
数据结构
查看>>
78/90 Subsets --back tracking
查看>>
非托管资源的释放
查看>>
开篇寄语
查看>>
Dijkstra算法的C++实现
查看>>
phpstorm psr2样式.xml
查看>>
js 无限级分类
查看>>
umask值与Linux中文件和目录权限的关系
查看>>
python自动化开发-8
查看>>
bzoj 2127: happiness
查看>>
Python 3.5 之路 day1
查看>>
selenium使用chrome抓取自动消失弹框的方法
查看>>
实现strStr()---简单
查看>>
只有PD号的调起
查看>>
返回一个整数数组中最大子数组的和
查看>>
leetcode(二)
查看>>
利用css实现居中的方法
查看>>
Spring + Hibernate 框架
查看>>
添加浏览器的用户样式表
查看>>