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

alessandro medici alexxandro.medici a gmail.com
Ven 20 Maggio 2016 17:36:38 CEST


Il giorno 20 maggio 2016 16:42, Pietro Battiston <ml a pietrobattiston.it> ha
scritto:

> Il giorno ven, 20/05/2016 alle 16.26 +0200, alessandro medici ha
> scritto:
> > Il giorno 20 maggio 2016 16:05, Pietro Battiston <ml a pietrobattiston.
> > it> ha scritto:
> >
> > >  > >  - "multiprocessing" implica (a meno di eccezioni notevoli)
> > > "pickle
> > > > > di
> > > > > tutto"
> > > > ? cioè i dati vengono trasmessi via pickle e non via puntatori?
> > > Sure?
> > > > O invece non ho capito cosa affermi? Sorry per la mia ignoranza,
> > > ma
> > > > sono anziano e con i capelli MOLTO grigi.
> > Qualche aiuto/commento? Per caso usi pickle per passare copie di
> > dati?
>
> Sorry, mi ero dimenticato di rispondere a questo.
>
> Non è purtroppo una mia scelta quella di usare pickle, ma parte del
> funzionamento di multiprocessing!
> Vedi ad esempio
> http://stackoverflow.com/questions/1816958/cant-pickle-type-instancemet
> hod-when-using-pythons-multiprocessing-pool-ma
> ... (non trovo al momento un riferimento chiaro nella documentazione).


Visto. Ed ho visto anche gli escamotages.

E', al solito, una questione di disegno: se hai bisogno di codice che agisca
veloce: poco da fare. Ma se hai bisogno di codice che re-agisca veloce
(in altre parole puoi lavorare prima sulle precondizioni ed il codice deve
solo esser reattivo ad un caso quasi-previsto) una factory del metodo che
ti serve potrebbe essere una buona soluzione. Capita. In tal caso pickle
potrebbe implementare solo il puntatore alla classe esterna.
(ma da andar a vedere se è vero :-)

Ve ne è un ottimo esempio nell'implementazione di asyncio in 3.4, non ho
avuto occasione di guardare se han cambiato qualcosa in 3.5.

Alex
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20160520/fcbc22b1/attachment-0001.html>


Maggiori informazioni sulla lista Python