|
|
|
|
|
by alexrustic
655 days 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... |
|