我正在使用一個多進程的工作池作爲更大的應用程序的一部分。由於我用它來處理大量的簡單數學,我有一個無共享體系結構,其中工作人員需要的唯一變量作爲參數傳遞。因此,我不需要工作程序子進程導入任何全局變量,我的__main__
模塊或因此它導入的任何模塊。有什麼辦法來強制這樣的行爲,並避免產卵池時的性能問題?防止池進程導入__main__和全局變量
我要指出,我的環境是Win32的,缺乏os.fork()
和工作進程正在使用的子進程調用sys.executable催生」(即啓動一個新的Python進程),其次是序列化所有的全局變量,併發送那些在管道上。「按照this SO post。這就是說,我希望儘可能少地做到這一點,所以我的泳池打開得更快。
任何想法?
你在說什麼是真實的,並且將你的主代碼放在一個'__name__ =='__main __''子句中不言而喻,但*有*是明確的方式或至少是一組減少開始的最佳實踐子流程的時間。 – ktdrv 2011-05-12 22:32:48
@kaloyan我認爲你沒有太多需要減少的東西,但我已經增加了一件不用說的事情,那就是你可以用這個子句來防止進口。 – Tobu 2011-05-15 20:53:12