我需要在多个模块之间共享变量。在程序运行时,这些变量将由线程异步更改。
我需要能够同时通过多个模块访问变量的最新状态。
多个模块也将写入同一个变量。
基本上我需要的是共享内存空间,比如模块中的Global var,但是可以访问&所有其他模块可以异步更改。
我熟悉在模块中锁定全局变量。我不知道在多个模块中从哪里开始这样做。
怎么做?
答案 0 :(得分:1)
将所有全局变量放在一个模块中,例如config.py并将其导入整个模块:
config.py:
a=None
varlock=None
main.py:
import config
import threading
config.a = 42
config.varlock = threading.RLock()
...
然后,您可以使用在main中实例化一次的全局锁实例来保护您的变量。每次在任何线程中修改其中一个时,请按
进行操作with config.varlock:
config.a = config.a + 42
你应该没事。
哈努哈利