Message309858
I have the following code, which works without multiprocessing:
data=[[['','','','','','','','','','','','']]]
data[0][0][0] = 5
data[0][0][1] = "5" # data in the array is mixed with float and str
print(data)
#=> [[[5, '5', '', '', '', '', '', '', '', '', '', '']]]
Now I want to use Multiprocessing and every process should be able to change the 3D list. This doesn't work and no error message is shown.
from multiprocessing import Process, Manager
manager=Manager()
data=manager.list([[['','','','','','','','','','','','']]])
data[0][0][0] = 5
data[0][0][1] = "5"
print(data)
#=> [[['', '', '', '', '', '', '', '', '', '', '', '']]]
I found the following text:
list(sequence)
Create a shared list object and return a proxy for it.
Changed in version 3.6: Shared objects are capable of being nested. For
example, a shared container object such as a shared list can contain
other shared objects which will all be managed and synchronized by the
SyncManager.(https://docs.python.org/3/library/multiprocessing.html)
Unfortunately it also doesn't work with 3.6.3, same problem as before! But as it should work, I guess it's a bug?
I use Ubuntu 16.04... |
|
Date |
User |
Action |
Args |
2018-01-12 15:05:56 | John_81 | set | recipients:
+ John_81 |
2018-01-12 15:05:56 | John_81 | set | messageid: <1515769556.66.0.467229070634.issue32538@psf.upfronthosting.co.za> |
2018-01-12 15:05:56 | John_81 | link | issue32538 messages |
2018-01-12 15:05:56 | John_81 | create | |
|