在并行进程之间共享变量(从不同文件导入)

时间:2018-06-26 15:04:33

标签: parallel-processing global-variables

这是我看似简单的代码:


from multiprocessing import Process    
from Interface_pyqt4 import *   
from main import *

def loop_a():        
    import sys    
    app = QtGui.QApplication(sys.argv)
    MainWindow = QtGui.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

def loop_b():
    main(sys.argv)

if __name__ == '__main__':
    Process(target=loop_a).start()
    Process(target=loop_b).start()

导入的 main (loop_b)从许多不同的文件中依次导入模块,其中一个名为 trigger 的模块包含与此相关的部分代码帖子:


if globals.flag2 == 1:
        if globals.counter == 1:
            globals.sample50 = numpy.zeros(50)
        self.do = datablock.eeg_channels.transpose()
        globals.sample50[...] = self.do[:, 0]
        globals.counter += 1
        if globals.counter == 3:
            globals.flag = 1
            while globals.flag > 0:
                globals.counter = 1
            globals.flag = 0

我现在报告另一个导入模块 Interface_pyqt4 的几行相关内容:


 if globals.flag ==1:
        self.buffer[...] = globals.sample50
        globals.flag = 0

globals 之前的所有变量均已从通用文件 globals 导入。 我要点了。 我希望只要一个进程中的全局变量的值发生变化,另一进程中的同一变量的值也发生变化。在我的工作的先前版本中,我没有使用不同的进程,而仅使用不同的文件,这种从通用脚本中导入变量的方法很有效。 有谁知道如何解决这个问题?无论哪种提示都会被赞赏。预先感谢!

0 个答案:

没有答案