L'esempio che hai fatto non è quello che intendevo io: accedi a due voci contemporaneamente dello stesso dizionario nello stesso thread. Comunque proverò.
In ogni caso a me risulta che Gil rilascia i thread ogni 'gruppo' di istruzioni bytecode, non ogni singola istruzione. In altre parole sovrascrivere una voce di un dizionario è, per quel che riguarda python, una istruzione atomica. La cosa è evidente se cerchi di scrivere sullo stesso terminale da ogni thread: quel che appare è un guazzabuglio confuso ma è anche evidente dal risultato degli script che ho scritto. O, quantomeno, la cosa funziona: mi son fatto diversi script in cui ogni thread modifica/usa/cancella/trattiene una voce (con un lock non atomico di controllo di accesso) in un dizionario e gli altri fanno quello che vogliono sulle ALTRE voci con le stesse regole. Ogni voce punta ad una voce univoca di un altro dizionario senza lock che viene cancellata/riscritta. Funzionano perfettamente senza problemi, almeno per quella decina di milioni di volte per cui li ho fatti girare: direi che si può benissimo farlo anche se sono certo del reale perché. Mah! :-)
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python