Ich muss ein großes Wörterbuch (ca. 1 GB groß) zwischen mehreren Prozessen teilen, aber alle Prozesse werden immer davon lesen. Ich brauche keine Verriegelung.Wie ein Wörterbuch zwischen mehreren Prozessen in Python ohne Sperre teilen
Gibt es eine Möglichkeit, ein Wörterbuch ohne Sperren zu teilen?
Das Multiprocessing-Modul in Python eine Array-Klasse bereitstellt, die durch das Setzen
Schlosses ohne Sperrfreigabe erlaubt = false
jedoch Es gibt keine solche Option für Wörterbuch von Managern bereitgestellt Modul in Multiprocessing.
Ich sehe die Race-Bedingung: d ['blah'] + = 1 ist eigentlich d ['blah'] = d ['blah'] + 1 was zusammenbricht, um d ['blah'] zu erhalten, addiere 1, und dann in d ['blah'] speichern. In dieser Zeit könnte der andere Prozess es verändert haben. Der Manager stellt in diesem Fall nur einen Proxy für den Zugriff auf das Diktat bereit. Eigentlich sollte der Manager auch eine Sperre zwischen dem Lesen und dem Zurücksetzen des Diktats erstellen. – dalore