【发布时间】:2011-12-14 05:44:03
【问题描述】:
我看到过类似的帖子here,但它指的是 Python 2.6,我希望有更简单的方法。
从阅读线程看来,最好的方法是将我所有的打印语句替换为 sys.stdout.write(s + '\n') ?
我希望有更好的方法让我仍然可以使用打印
【问题讨论】:
标签: python thread-safety
我看到过类似的帖子here,但它指的是 Python 2.6,我希望有更简单的方法。
从阅读线程看来,最好的方法是将我所有的打印语句替换为 sys.stdout.write(s + '\n') ?
我希望有更好的方法让我仍然可以使用打印
【问题讨论】:
标签: python thread-safety
from __future__ import print_function
print = lambda x: sys.stdout.write("%s\n" % x)
是一个不错的廉价和肮脏的黑客。
【讨论】:
print() keyword arguments。以及它使输出始终无缓冲。
sys.stdout.write 是线程安全的?
我发现以下在多线程和多进程环境下都有效,非常简单:
def sprint(content):
print("{0}~{1}\r".format(str(datetime.datetime.now()), content))
【讨论】: