我在python中使用模塊多處理。在我使用映射函數調用主函數之前,我需要從用戶那裏獲得一些輸入。我的問題是main函數之前的代碼被執行多次,當我打電話的主要功能與pool.map 這個非常簡單的代碼說明我的問題:多呼叫體多核處理python
from multiprocessing import Pool
result=range(1,5)
print('start')
def test(a):
print(a+10)
if __name__=="__main__":
pool = Pool(processes=2)
pool.map(test,result)
我的輸出則寫着:
start
start
11
12
13
14
start
爲什麼測試函數之前的代碼會執行多次?
它不(使用Python 3.5在這裏)。輸出中數字的順序各不相同,所以一切都按預期工作。 – 2016-05-31 12:53:16
但是無論打印的順序如何,開始仍然會打印三次。這是否意味着打印語句和測試函數之前的代碼在只運行一次時會執行三次? 此問題擴展到當我嘗試從用戶那裏獲得一些輸入時,也會多次詢問輸入 – Bruno
我無法再現您的輸出 - 它只會打印「開始」 – DomTomCat