![](/img/trans.png)
[英]Python Multiprocessing error: AttributeError: Can't get attribute 'task' on <module '__main__' (built-in)>"
[英]multiprocessing error “AttributeError: Can't get attribute 'testfuncxx' on <module '__main__”
#!/usr/bin/env python3.5
import multiprocessing, time
def testfuncxx(num):
time.sleep(num)
print(num
pool = multiprocessing.Pool(processes=3)
)
for i in range(10):
#testfuncxx(i)
#print(i, '=======')
pool.apply_async(testfuncxx, args=(i,))
pool.close()
pool.join()
由于只能在Windows上进行测试,因此当我将代码包含在if __name__ == '__main__'
入口点保护中时,代码可以工作。 更多细节在这里 。 通常,在多处理指南中建议包括此保护。
注意 :该代码作为脚本test.py运行。 要在IPython或Jupyter笔记本中运行代码,可以像import test
一样import test
其import test
。
test.py :
import multiprocessing, time
def testfuncxx(num):
time.sleep(num)
print(num)
def apply_async_callback():
pool = multiprocessing.Pool(processes=3)
for i in range(10):
pool.apply_async(testfuncxx, args=(i,))
pool.close()
pool.join()
if __name__=='__main__':
apply_async_callback()
#Output:
0
1
2
3
4
5
6
7
8
9
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.