2017-06-16 47 views
1

我是新來的多處理。 我寫了一個簡單的代碼,一次只需要1個號碼並打印出來。瞭解python使用一個簡單的例子多重處理

import multiprocessing as mp 

def test(num): 
    print num 

L = [1,2,3,4,5,6,7,8] 


pool = mp.Pool(2) 
pool.map(test,L) 

這可以使用正常方法也[test(i) for i in L]

做,但我想用多和這樣做。 但是當我運行程序時,內核顯示繁忙,但沒有打印正在發生。

我的代碼有什麼問題嗎?

+0

你使用的是Windows打印? –

+0

@IljaEverilä是 – Shubham

+0

由於多處理嘗試產生嘗試從模塊中導入測試函數的新進程,這會導致一組新的進程產生並且...您需要防範實際爲了防止這種情況,使用「if __name__ ==」__main__「:...'」main「代碼。在支持分叉的系統上,例如linux,這不會發生,因爲它們只是在現場分叉並調用函數。 –

回答

-1

當我運行在終端(Python2.7.6)你的代碼,它

1 
3 
2 
4 
5 
6 
7 
8 
[None, None, None, None, None, None, None, None] 
+1

Downvoted,因爲一個鏈接到文檔結合「它適用於我」是一個可憐的答案。 –

+1

@IljaEverilä是的,它不工作在Windows – Shubham