shared variables multiprocessing
Bonjour à tous,
Soit le petit code suivant ou le processus père crée un dictionnaire avec Manager et le passe en args au processus fils. Ce dernier est censé ajouter des listes au dictionnaire de sorte que le tous soit partagé entre le fils et le père.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| import multiprocessing as mp
import time
def modif1(d):
l=[3,4]
d[1].append(l)
print(d[1][0][1])
d[1][0][1]=60
print(d[1][0][1])
if __name__=='__main__':
manager=mp.Manager()
dic=manager.dict()
dic[1]=manager.list()
print(dic[1])
pr1=mp.Process(target=modif1,args=[dic])
pr1.start()
pr1.join()
print(dic[1]) |
Le problème est que la valeur de d[1][0][1] ne change pas ni chez le processus fils ni chez le processus père.
Sauriez-vous comment faire pour que la maj prenne effet ?
Merci