python多线程数据无法写入

阅读 3.1k
2 个回答

这并不是玄学,你确定你把代码跑结束了,然后打开txt看过了,还是运行过程中查看txt,发现空白就说着是玄学了。我把你的两个while True改成for i in range(10),跑完打开txt,里面是有内容的。如果你要一边写入,一边打开txt看内容,你需要在write之后刷新缓冲区,fout.flush()。如果你强制关闭程序,缓冲区丢失,自然一片空白。

fout一直没有关闭,程序结束的地方把它关闭掉。

第50行write后,flush一下。按理说没有close也没有flush,你不注释49行应该也不会保存到文件。

最后,多线程传递文件对象不是个好办法,很容易输出混乱,最好加锁或者放queue。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题