我有一个基于Twisted的网络系统的实现。我注意到,当我在新线程而不是主线程中运行函数(执行一些数学运算并打印结果)时,print
函数导致Segmentation fault
。有可能吗?是否有避免这种情况的选项?
我的方法,基于Bram Cohen's suggestion:
定义全局Lock
变量
from threading import Lock
s_print_lock = Lock()
定义要使用Lock调用print
的函数
def s_print(*a, **b):
"""Thread safe print function"""
with s_print_lock:
print(*a, **b)
在您的线程中使用s_print
而不是print
。
这篇关于Python:在多线程中打印的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!