我想使用一个全局变量,初始化一次。具有线程安全访问。
有人可以分享一个例子吗?
如果您需要只读访问权限并且在产生线程之前初始化值,则无需担心线程安全。
如果不是这种情况,Python线程库可能是您需要的,更准确地说是锁定。关于这个主题的一个非常好的阅读 - http://effbot.org/zone/thread-synchronization.htm有很多例子。
如果您使用 multiprocessing.Processes,您确实会遇到问题。在这种情况下,您应该查看多处理模块中的管理器和队列。
线程库是您想要的:
import threading
mydata = threading.local()
mydata.x = 1
如果你初始化它一次,并且如果你在加载模块时初始化它(这意味着:在它可以从其他线程访问之前),你根本不会遇到线程安全问题。不需要同步。
但是如果你的意思是一个更复杂的场景,你必须进一步解释它以获得一个合理的代码示例。