我在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