When I try run something simple from documantaions like: https://docs.python.org/3.4/library/multiprocessing.html?highlight=process
from multiprocessing import Pool
def f(x):
return x*x
if __name__ == '__main__':
with Pool(5) as p:
print(p.map(f, [1, 2, 3]))
It runs the code infinite time. I've tried to add close and join, and tried to get id of procceses but nothing worked. Seems like it looping pool over and over and cant execute it. What is wrong?
from datetime
import datetime from datetime
import date
import os
import time
from multiprocessing import Pool
def y(z):
print(f'Process {os.getpid()} working record {z}')
time.sleep(1)
q = z*2
print(f'Process {os.getpid()} done record {q}')
return(q)
with Pool(2) as p:
result = p.map(y, [1, 2, 3])
p.close()
p.join()
end_time = datetime.now()
print('Duration: {}'.format(end_time - start_time))
######Error
Process SpawnPoolWorker-1:
Process SpawnPoolWorker-2:
Traceback (most recent call last):
File "C:\Users\a.ovchinnikov\AppData\Local\Continuum\anaconda3\lib\multiprocessing\process.py", line 297, in _bootstrap
self.run()
File "C:\Users\a.ovchinnikov\AppData\Local\Continuum\anaconda3\lib\multiprocessing\process.py", line 99, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\a.ovchinnikov\AppData\Local\Continuum\anaconda3\lib\multiprocessing\pool.py", line 110, in worker
task = get()
File "C:\Users\a.ovchinnikov\AppData\Local\Continuum\anaconda3\lib\multiprocessing\queues.py", line 354, in get
return _ForkingPickler.loads(res)
AttributeError: Can't get attribute 'y' on <module '__main__' (built-in)>
Traceback (most recent call last):
File "C:\Users\a.ovchinnikov\AppData\Local\Continuum\anaconda3\lib\multiprocessing\process.py", line 297, in _bootstrap
self.run()
File "C:\Users\a.ovchinnikov\AppData\Local\Continuum\anaconda3\lib\multiprocessing\process.py", line 99, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\a.ovchinnikov\AppData\Local\Continuum\anaconda3\lib\multiprocessing\pool.py", line 110, in worker
task = get()
File "C:\Users\a.ovchinnikov\AppData\Local\Continuum\anaconda3\lib\multiprocessing\queues.py", line 354, in get
return _ForkingPickler.loads(res)
AttributeError: Can't get attribute 'y' on <module '__main__' (built-in)>
Process SpawnPoolWorker-3:
Traceback (most recent call last):
File "C:\Users\a.ovchinnikov\AppData\Local\Continuum\anaconda3\lib\multiprocessing\process.py", line 297, in _bootstrap
self.run()
File "C:\Users\a.ovchinnikov\AppData\Local\Continuum\anaconda3\lib\multiprocessing\process.py", line 99, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\a.ovchinnikov\AppData\Local\Continuum\anaconda3\lib\multiprocessing\pool.py", line 110, in worker
task = get()
File "C:\Users\a.ovchinnikov\AppData\Local\Continuum\anaconda3\lib\multiprocessing\queues.py", line 354, in get
return _ForkingPickler.loads(res)
AttributeError: Can't get attribute 'y' on <module '__main__' (built-in)>