【发布时间】:2015-04-17 14:26:02
【问题描述】:
我有 2 个守护进程,它们应该访问同一个变量。 我为全局变量创建了第三个文件,每个守护进程都可以访问该变量。但是,当一个人更改变量时,另一个人仍然看到默认值。
示例:
glob.py
time = 0
守护进程:
import datetime
import time
import glob
while(True):
glob.time = datetime.datetime.now()
time.sleep(30)
守护进程 b:
import glob
while(True):
print(glob.time)
每次都会打印 0 我希望我已经把我的问题说清楚了,有人可以帮助我。 如果您需要更多信息,请随时询问。
【问题讨论】:
-
如果你的守护进程是进程,那么它们有单独的数据空间。如果它们是线程,它们共享相同的数据空间(变量)。请说明您如何创建/生成它们。
-
另外,您应该避免将文件命名为“glob.py”,因为它会与 stdlib 模块“glob”一起出现阴影 - 这可能会导致意外错误。
-
如果您使用的是
threading,这将按预期工作。所以我假设你使用的是multiprocessing。见sharing state between processes。
标签: python global-variables global