hello, je trouve plusieurs exemple avec manager pour partager une liste entre plusieur processus, mais comment fait pour un set ?
en faite je n’ai pas besoin d’un set, mais une liste sans doublon, pour moi la logique voudrais que j’utilise un set.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | from multiprocessing import Process, Manager def worker(i): x[i].append(i) if __name__ == '__main__': manager = Manager() x = manager.list() p = [] for i in range(5): p.append(Process(target=worker, args=(i,))) p[i].start() print x |
cela fonctionne bien, mais c’est une liste…donc j’ai des doublons
avec un set :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | from multiprocessing import Process, Manager def worker(i): x[i].add(i) if __name__ == '__main__': manager = Manager() x = manager.set() p = [] for i in range(5): p.append(Process(target=worker, args=(i,))) p[i].start() print x |
naivement j’aurais pensé que cela fonctionnerais, mais manager ne reconnait pas ma structure : AttributeError: ’SyncManager’ object has no attribute ’set’
peut on partager en mémoire un set/ ou bien une liste sans doublon ?
+0
-0