如何对具有零位置参数的函数使用Python多处理?
以下是一个例子:如何对具有零位置参数的函数使用Python多处理?,python,iterator,multiprocessing,python-multiprocessing,Python,Iterator,Multiprocessing,Python Multiprocessing,以下是一个例子: import multiprocessing def function(): for i in range(10): print(i) if __name__ == '__main__': p = multiprocessing.Pool(5) p.map(function, ) 产生错误:TypeError:map()缺少1个必需的位置参数:“iterable” 这个函数不需要任何输入,所以我不希望人为地强迫它。还是多处理需要一些可
import multiprocessing
def function():
for i in range(10):
print(i)
if __name__ == '__main__':
p = multiprocessing.Pool(5)
p.map(function, )
产生错误:TypeError:map()缺少1个必需的位置参数:“iterable”
这个函数不需要任何输入,所以我不希望人为地强迫它。还是多处理需要一些可移植的
下面的代码不返回/打印任何内容。为什么?
import multiprocessing
def function():
for i in range(10):
print(i)
if __name__ == '__main__':
p = multiprocessing.Pool(5)
p.map(function, ())
如果没有要传入的参数,则不必使用
map
。您只需使用:
如果您仅尝试执行少量任务,出于所述原因,最好使用
过程
提供了一个关于Process()
使用的优秀教程,我觉得这很有帮助。下面是教程中使用函数()的一个示例
:
... <代码>映射需要一个iterable来将函数映射到。。。如果这不是您想要的,您不必使用
map
,但这只需调用函数一次。池的目的是同时运行多个副本,不是吗?
import multiprocessing
def function():
for i in range(10):
print(i)
if __name__ == '__main__':
p = multiprocessing.Pool(5)
p.apply(function)
import multiprocessing
def function():
for i in range(10):
print(i)
if __name__ == '__main__':
jobs = []
for i in range(5):
p = multiprocessing.Process(target=function)
jobs.append(p)
p.start()