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 : Sélectionner tout - Visualiser dans une fenêtre à part
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