Python2.7:打印线程安全
我看过一篇类似的文章,但是它提到了Python2.6,我希望有一种更简单的方法 从读取线程来看,最好的方法似乎是用sys.stdout.write(s+'\n')替换我所有的print语句 我希望有一种更好的方式让我仍然可以使用打印Python2.7:打印线程安全,python,thread-safety,Python,Thread Safety,我看过一篇类似的文章,但是它提到了Python2.6,我希望有一种更简单的方法 从读取线程来看,最好的方法似乎是用sys.stdout.write(s+'\n')替换我所有的print语句 我希望有一种更好的方式让我仍然可以使用打印 from __future__ import print_function print = lambda x: sys.stdout.write("%s\n" % x) 是一种非常便宜且肮脏的黑客行为。我发现以下方法适用于多线程和多进程环境,非常简单: def s
from __future__ import print_function
print = lambda x: sys.stdout.write("%s\n" % x)
是一种非常便宜且肮脏的黑客行为。我发现以下方法适用于多线程和多进程环境,非常简单:
def sprint(content):
print("{0}~{1}\r".format(str(datetime.datetime.now()), content))
令人惊叹的。总是将其添加到python文件中有什么缺点吗?(即,为什么不始终具有线程安全性)它无法处理。正如我所说,它使输出总是无缓冲的。这是一种廉价而肮脏的黑客行为。这不是一种“正确”的方法,但它完成了任务。您可以在lambda的末尾添加sys.stdout.flush()。它是否有文档记录在
sys.stdout.write
是线程安全的?