Home >Backend Development >Python Tutorial >How to Share a Dictionary Between Multiple Processes Using Multiprocessing?
How to Share a Dictionary Among Multiple Processes Using Multiprocessing
When creating multiple processes that operate on a shared queue and utilize a global dictionary for result storage, it's crucial to address synchronization issues to ensure accurate data manipulation.
One approach to synchronize access to a shared dictionary is to use a Manager object. Manager provides a mechanism to create and manage shared objects that can be accessed by multiple processes.
In this specific scenario, you can incorporate a Manager object into your code as follows:
from multiprocessing import Process, Manager def f(d): d[1] += '1' d['2'] += 2 if __name__ == '__main__': manager = Manager() d = manager.dict() d[1] = '1' d['2'] = 2 p1 = Process(target=f, args=(d,)) p2 = Process(target=f, args=(d,)) p1.start() p2.start() p1.join() p2.join() print(d)
The Manager.dict() method creates a shared dictionary that can be accessed by any process. By passing this dictionary as an argument to each process, you allow them to manipulate the data concurrently.
Upon joining the processes, the main process can print the contents of the shared dictionary, which will now reflect the results accumulated by all child processes.
This approach ensures that all processes have access to the same dictionary and that modifications made by one process are visible to others, resolving the synchronization issue.
The above is the detailed content of How to Share a Dictionary Between Multiple Processes Using Multiprocessing?. For more information, please follow other related articles on the PHP Chinese website!