两个流程和所有子流程之间共享变量

时间:2018-07-02 12:43:58

标签: python-2.7 pycharm global-variables python-multiprocessing

我在Windows 10上使用Python 2.7。我有两个过程:


import cfg
from myfile import myfunction
from myfile2 import myfunction2

def proc1():
    while 1:
        myfunction()



def proc2():
    while 1:
        myfunction2()

if __name__ == '__main__':
    Process(target=proc1).start()
    Process(target=proc2).start()

和三个文件; cfg作为全局变量框:


cfg

var = 0

myfile:


myfile

import cfg

def myfunction():
    if cfg.var == 0:
        cfg.var = 1
    else:
        cfg.var = 0

和myfile2:


myfile2

import glb

def myfunction2():
    print(glb.var)

我希望myfunction2打印一个0和1的序列,但实际上它只打印零(初始值)。

假设我可以在主文件中定义myfunction和myfunction2,结果是相同的。

我的最终目标是获取一些可以在myfunction中实时更新的数据,并在myfunction2中进行实时处理,因此由于速度问题,我无法将数据存储在文件中并上传它们在myfuncion2中。

我也尝试过使用PyCharm环境变量作为全局变量,但它不符合我的需求。几个星期以来,我一直陷入这个问题:/。

我所需要的一切都是一种定义变量的方式,该变量在项目内所有文件之间共享。

有人有什么建议吗?我先谢谢你

0 个答案:

没有答案