[問題] Python有類似Shared Memory的方法嗎?

看板Python作者 (woogee)時間8年前 (2017/11/22 17:16), 編輯推噓2(203)
留言5則, 3人參與, 8年前最新討論串1/1
大家好,小弟寫程式遇到一個問題,程式執行邏輯大概是這樣 有三支程式為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://www.ptt.cc/bbs/Python/M.1511342171.A.625.html

11/22 18:14, 8年前 , 1F
用 os.environ A是B的 parent process, B也是C的
11/22 18:14, 1F

11/22 18:14, 8年前 , 2F
所以A 也是 C的 parent process, C 會繼承 A 的environ
11/22 18:14, 2F

11/22 18:18, 8年前 , 3F
11/22 18:18, 3F

11/22 19:59, 8年前 , 4F
成功了!! 謝謝johnlinvc大大!!
11/22 19:59, 4F

11/22 20:46, 8年前 , 5F
等真的有效能問題再說
11/22 20:46, 5F
文章代碼(AID): #1Q5K1ROb (Python)