objectif
Partager des structures Python gérées par un serveur manager.
code minimal
from multiprocessing import Manager
with Manager() as m:
d = m.dict(); l = m.list()
d["x"] = 1; l.append(2)
print(d["x"] == 1 and list(l) == [2]) # attendu: True
utilisation
from multiprocessing import Manager
with Manager() as m:
q = m.Queue()
q.put("msg")
print(q.get() == "msg")
variante(s) utile(s)
from multiprocessing import Manager
with Manager() as m:
s = m.set([1]); s.add(2)
print(2 in s)
notes
- Plus simple que shared_memory pour objets Python hétérogènes.
- Coût IPC non négligeable -> limiter la granularité des opérations.