<div dir="ltr">Intanto grazie mille della risposta cortese e soprattutto davvero molto utile in particolare ed in generale.<div><br></div><div>Peccato solo che manchi il caso dict.__delitem__(item)<div><br></div><div>Si, in effetti uso asyncio in un thread, ma altri thread lavorano al contempo sugli stessi dizionari e mi risulta che che Gil si sganci quando entra in un thread.<div><br></div><div>Per locked intendo l'usare una context manager (di massima multiprocessing.Lock: è atomica e perfettamente with compatibile :-) ma riferita solo all'item specifica del dizionario su cui il thread sta lavorando, con questo è ovvio che potrei segnalare a tutti i thread di lasciare in pace i dizionari ove altri thread stanno lavorando, ma il tutto mi rallenterebbe troppo il flusso del programma.</div><div><br></div><div>Pensavo quindi di usare il lock solo come indicatore di non lavorare su quella singola item di ogni specifico dizionario. Ed è per questo che volevo sapere cosa succede quando un thread fa una richiesta sul valore di una item mentre un altro thread ne modifica (credo che in questo caso non abbia importanza) o ne cancella o inserisce un'altra (e qui la cosa si fa più preoccupante. Ovvio che non userò iteratori su quei dizionari: mi incazzerei anch'io se mi togliessero la sedia dal sedere mentre ci sto seduto sopra :-)</div></div><div><br></div><div>In questo momento quindi mi stavo scrivendo un programma che andasse a vedere in pratica cosa potrebbe succedere: l'idea sarebbe forzare collisioni sullo stesso dizionario di solo sei item mettendo su quattro thread che random leggono/scrivono/cancellano/aggiungono.</div><div><br></div><div>In effetti però, sarebbe bello se qualcuno sapesse già la risposta e magari anche il perché della stessa. </div><div><br></div><div>E grazie di nuovo.</div>​<div>Alex</div></div></div>