作者woogee (woogee)
看板Python
标题[问题] Python有类似Shared Memory的方法吗?
时间Wed Nov 22 17:15:54 2017
大家好,小弟写程式遇到一个问题,程式执行逻辑大概是这样
有三支程式为A.py、B.py、C.py
A和C是我写的程式,B的部分是别人写的
B基本上因为程式已经太大,几乎无法更动,牵一发动全身
所以不考虑从B这支程式修改。
至於A这个程式,执行时会去读取一个叫做config.json的设定档
之後透过Thread执行B、B会去扫描某个资料夹下的所有Python档案去执行
我的C档案就是放在B会扫描的资料夹下,所以B会去执行我的C程式
问题是这样的,我A这支程式读取的config.json,希望能够让C也能使用这些设定
目前我的做法是让C再读取一次config.json
但因为A有可能在短时间内呼叫上百次B,B每次执行就呼叫一次C
C就疯狂的去读取config.json,担心会效能或其他问题
我希望是直接透过A读取好给C、但因为B扫描执行并不会带参数给C
所以不知道怎麽直接把设定丢给C
网路上我找到几种方式像是mmap,但这看起来好像也是用档案当作交换
还有pickle但这也是用档案交换跟直接用C去读档没有两样
也有试过globals设定变数,从C.py用inspect抓,但总是抓不到
试过很多种方法都无功而返,想请问各位大大有没有好方法呢,谢谢!
--
温拿有数位女友
鲁蛇有数位女友
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.171.49.242
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1511342171.A.625.html
1F:推 johnlinvc: 用 os.environ A是B的 parent process, B也是C的 11/22 18:14
2F:→ johnlinvc: 所以A 也是 C的 parent process, C 会继承 A 的environ 11/22 18:14
4F:→ woogee: 成功了!! 谢谢johnlinvc大大!! 11/22 19:59
5F:→ djshen: 等真的有效能问题再说 11/22 20:46