Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 多个进程之间的共享配置变量_Python_Dictionary_Parallel Processing_Multiprocessing_Multiple Processes - Fatal编程技术网

Python 多个进程之间的共享配置变量

Python 多个进程之间的共享配置变量,python,dictionary,parallel-processing,multiprocessing,multiple-processes,Python,Dictionary,Parallel Processing,Multiprocessing,Multiple Processes,假设你有一个config.py,里面有 settings = read_yaml('settings.yaml') 因此,config.settings是一本字典 在一个脚本foo.py中,您有: import config config.settings['foo'] = str(time.time()) write_yaml('settings.yaml', config.settings) 在另一个脚本bar.py中 import config while True: slee

假设你有一个
config.py
,里面有

settings = read_yaml('settings.yaml')
因此,
config.settings
是一本字典

在一个脚本
foo.py
中,您有:

import config
config.settings['foo'] = str(time.time())
write_yaml('settings.yaml', config.settings)
在另一个脚本
bar.py

import config
while True:
    sleep(10)
    print config.settings['foo']
在运行
foo.py
后,您如何随时使用新值保持
bar.py
中的打印值最新,而无需再次明显读取文件,因为
bar.py
中的while循环需要尽可能快

我目前在单独的bash线程上运行这些线程,即:

$ python bar.py
$ python foo.py

但如果可能的话,我可以在一个线程中运行bar?

我不知道您需要多快的速度。但是,当然可以使用重新加载
config
模块。因此
config.py
foo.py
保持不变,您的
bar.py
更改为:

import importlib
import config

while True:
    print config.settings['foo']
    sleep(10)
    importlib.reload(config)

更新


上面的示例适用于Python>=3.4,用于早期版本的Python 3或Python 2。

是否使用任何标准IPC机制作为foo和bar之间通信的选项?我从
bar.py
中的线程运行
foo.py
threading.thread()