Ho bisogno di condividere un dizionario enorme (circa 1 GB di dimensione) tra più processi, tuttavia dal momento che tutti i processi leggeranno sempre da esso. Non ho bisogno di essere bloccato.Come condividere un dizionario tra più processi in python senza bloccare
C'è un modo per condividere un dizionario senza bloccare?
Il modulo multiprocessing in pitone fornisce una classe Array che permette la condivisione senza bloccaggio modificando
blocco = false
tuttavia v'è alcuna possibilità per Dictionary fornito da gestore nel modulo multiprocessore.
Vedo la condizione di gara: d ['blah'] + = 1 è in realtà d ['blah'] = d ['blah'] + 1 che si rompe per ottenere d ['blah'], aggiungi 1, e poi memorizzare in d ['blah']. In quel momento l'altro processo avrebbe potuto cambiarlo. In questo caso, il manager sta solo fornendo un proxy per accedere al dett. Davvero dovresti usare il gestore per creare anche un blocco tra la lettura e l'aggiunta al ditt. – dalore