如何在线程安全的情况下在Python中使用全局变量
我想使用一个全局变量,
只初始化一次。
并且要确保线程安全的访问。
有人能分享一个例子吗?
4 个回答
1
你需要用到的是 threading 这个库:
import threading
mydata = threading.local()
mydata.x = 1
1
如果你在使用 multiprocessing.Processes,那你确实遇到了一些问题。在这种情况下,你应该看看 multiprocessing 模块中的 Managers 和 Queues。
7
如果你只需要读取数据,而且这些数据在启动线程之前就已经初始化好了,那么你就不需要担心线程安全的问题。
如果情况不是这样,Python 的 threading 库可能就是你需要的,特别是里面的锁(locks)。关于这个主题有一篇很不错的文章 - http://effbot.org/zone/thread-synchronization.htm,里面有很多例子。