Python 的 print
函数本身不是线程安全的。在多线程环境下,如果多个线程同时调用 print
函数,可能会导致输出结果混乱。为了在多线程环境下安全地使用 print
,你需要使用锁(Lock)或其他同步机制来确保同一时间只有一个线程可以执行 print
函数。
以下是一个使用锁来实现线程安全的 print
函数的示例:
import threading # 创建一个锁对象 print_lock = threading.Lock() def safe_print(*args, **kwargs): # 获取锁 with print_lock: # 在锁保护下执行 print 函数 print(*args, **kwargs) # 定义两个线程 def thread1(): for i in range(5): safe_print("Thread 1:", i) def thread2(): for i in range(5): safe_print("Thread 2:", i) # 创建并启动线程 t1 = threading.Thread(target=thread1) t2 = threading.Thread(target=thread2) t1.start() t2.start() # 等待线程结束 t1.join() t2.join()
在这个示例中,我们使用了一个名为 print_lock
的锁对象来确保同一时间只有一个线程可以执行 safe_print
函数。这样就可以避免输出结果混乱的问题。