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

Manlio Perillo manlio.perillo a gmail.com
Gio 11 Feb 2016 15:43:38 CET


2016-02-10 22:28 GMT+01:00 alessandro medici <alexxandro.medici a gmail.com>:
> ecco, mi domandavo se sia solo insano o sicuro.
>

Cosa intendi con locked item?

Comunque tieni presente che, quando usi asyncio, normalmente solo un
thread è attivo ogni momento, quindi non hai problemi di accessi
concorrenti.

Invece usando i threads potenzialmente hai un problema di accesso
concorrente, ma con CPython grazie al GIL il problema non si pone.
Qui ci sono maggiori dettagli:
http://effbot.org/pyfaq/what-kinds-of-global-value-mutation-are-thread-safe.htm

Attenzione che non appena inizi a fare cose meno banali oppure inizi
ad usare altre implementazioni di Python avrai sicuramente problemi,
quindi meglio commentare bene il codice, oppure usare un lock.


Ciao  Manlio


Maggiori informazioni sulla lista Python