[Python] Decorated Concurrency - Python multiprocessing made really really easy

Manlio Perillo manlio.perillo a gmail.com
Mar 24 Maggio 2016 15:30:35 CEST


2016-05-24 15:00 GMT+02:00 enrico franchi <enrico.franchi a gmail.com>:
>
> [...]
>> Perchè tutti i linguaggi (o meglio le loro implementazioni) attuali
>> che conosco, tranne Erlang (ed Haskell, come caso speciale), usano
>> memoria condivisa, anche se offrono supporto per il message passing
>> (tramite channel).
>
>
> Ma non e' questione di linguaggio: e' questione di applicazione. Il
> linguaggio diventa rilevante solo quando non ti lascia altra scelta.
>
>>
>> Quindi software normale scritto in questi linguaggi usa memoria condivisa.
>
>
> Mah... diciamo che non sono d'accordo. *Puoi* usare memoria condivisa.
> Certo. Questo non vuole dire che sia considerata una best practice farlo.
> Anzi.
>
> E mi sembra un trend dell'industria in un circolo virtuoso con quelli che
> fanno linguaggi e librerie. *Oggi* prova a presentare un design document
> fatto tutto a botte di synchronized e vediamo come va a finire (certo, se
> chi fa la review e' rimasto a come si faceva software negli anni '90 c'e'
> anche caso che passi...).
>

Quando parlo di memoria condivisa intendo a dettaglio implementativo,
magari nascosto sotto l'astrazione di una libreria o di un linguaggio.
Ad esempio in Rust alla fine *usi* memoria condivisa, ma il linguaggio
ti permette di ragionare senza pensare a sincronizzazioni esplicite.

In Go puoi usare i channel, ma anche qui alla fine usi la memoria
condivisa, solo che la sincronizzazione è gestita dal runtime.
Ma sempre in Go, spesso la soluzione più semplice e suggerita in
mailing list, è quella di usare un mutex.


Ciao  Manlio


Maggiori informazioni sulla lista Python