[英]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.