Comment by alexrustic
1 year ago
Thanks for your comment !
When you are doing parallelism, don't forget to protect the 'entry point' of the program by using "if __name__ == '__main__'", and also avoid the __main__.py file [1]
# this file isn't `__main__.py` !
from asyncpal import ProcessPool
def square(x):
return x**2
if __name__ == "__main__": # very important !
with ProcessPool(4) as pool:
numbers = range(1000)
# note that 'map_all' isn't lazy
iterator = pool.map(square, numbers) # map is lazy
result = tuple(iterator)
assert result == tuple(map(square, numbers))
[1] https://discuss.python.org/t/why-does-multiprocessing-not-wo...
No comments yet
Contribute on Hacker News ↗