2017-06-16 50 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