簡體   English   中英

Python多重處理:從具有傳遞變量的另一個腳本中進行多重處理的調用模塊

[英]Python multiprocessing: call module with multiprocessing from another script with passing variable

我有一個multy.py模塊, multy.py包含使用多處理的簡單示例

from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    pool = Pool(processes=4)
    result = pool.apply_async(f, [10])
    print result.get(timeout=1) 
    print pool.map(f, range(1000))

從另一個腳本start.py我想調用它並以與1000不同的值執行。

如何使用新參數正確運行它?

我試圖用進口multy和運行方式os.system('multy.py')與傳遞變量,但OT沒有成功。

有任何想法嗎?

通常,我們在if __name__ == '__main__'使用代碼進行自檢。 在您的情況下,建議您將相關代碼編寫到如下函數中:

from multiprocessing import Pool

def f(x):
    return x*x
def func(num):
    pool = Pool(processes=4)
    result = pool.apply_async(f, [10])
    print result.get(timeout=1) 
    print pool.map(f, range(num))

if __name__ == '__main__':
    func(1000)

然后,你可以導入multy在另一個文件並調用func(yournum) 它將使您的代碼更具可讀性。 像這樣:

test.py:

if __name__ == '__main__':
    import multy
    multy.func(2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM