9

我想使用一个全局变量,初始化一次。具有线程安全访问。

有人可以分享一个例子吗?

4

4 回答 4

4

如果您需要只读访问权限并且在产生线程之前初始化值,则无需担心线程安全。

如果不是这种情况,Python线程库可能是您需要的,更准确地说是锁定。关于这个主题的一个非常好的阅读 - http://effbot.org/zone/thread-synchronization.htm有很多例子。

于 2013-02-20T12:06:04.337 回答
1

如果您使用 multiprocessing.Processes,您确实会遇到问题。在这种情况下,您应该查看多处理模块中的管理器和队列。

于 2013-02-20T12:25:37.423 回答
1

线程库是您想要的:

import threading
mydata = threading.local()
mydata.x = 1
于 2020-11-15T10:33:18.360 回答
0

如果你初始化它一次,并且如果你在加载模块时初始化它(这意味着:在它可以从其他线程访问之前),你根本不会遇到线程安全问题。不需要同步。

但是如果你的意思是一个更复杂的场景,你必须进一步解释它以获得一个合理的代码示例。

于 2013-02-20T12:45:24.547 回答