[Python] aggiungere o distruggere una locked item in un dict mentre un'altro thread o asyncio lo legge/scrive per un'altra item?

alessandro medici alexxandro.medici a gmail.com
Dom 21 Feb 2016 16:47:59 CET


Ci ho messo un po', ma in effetti è possibile leggere, scrivere, rimuovere
ed aggiungere chiavi e valori su un dizionario non locked ed in comune a
diversi thread, indipendentemente dai valori impostati
con sys.setcheckinterval(), o almeno con i valori con cui ho provato e con
diverse distribuzioni di frequenza delle operazioni (alle righe 105 e 109).

128,64,32,16,8,4,2,1 il default per python3.5.1 nella mia debian è 100.

l'unica ovvia accortezza è evitare di operare in contemporanea sulla stessa
chiave. In pratica è un dizionario con accesso thread-safe-like con un lock
esterno alle singole voci. Per risolvermi il problema però ho messo su un
accrocchio che ha l'unica qualità di funzionare.

Ciao Alex
ps: se non mi è scappata qualche cavolata qui sotto :-)
http://pastebin.com/xQZPTUtg
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20160221/c1513eba/attachment.html>


Maggiori informazioni sulla lista Python