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

alessandro medici alexxandro.medici a gmail.com
Mer 25 Maggio 2016 19:02:36 CEST


Il giorno 25 maggio 2016 18:25, enrico franchi <enrico.franchi a gmail.com>
ha scritto:

>
>
> 2016-05-25 17:07 GMT+01:00 alessandro medici <alexxandro.medici a gmail.com>
> :
>
>>
>>> Come al solito, passeggiare per la libreria porta spesso a dei bei
>> risultati:
>>  https://docs.python.org/3.5/c-api/memory.html
>> spiega anche bene come si potrebbe fare.
>>
>>
> A me sembra proprio di no.
>
> Scusa... parliamoci chiaro. Diciamo che hai scritto un allocatore che
> lavora su un chunk di memoria condivisa.
> Che vuole anche dire condivisa fra piu' processi (se no non e'
> particolarmente interessante).
>
> Mi spieghi come hai intenzione di fare si che tutto questo non si rompa
> male *senza* usare lock?
>

Scrivendoci sopra solo quando NON ho altri processi che ci lavorano. Per
esempio lanciando
gli altri processi dopo averci scritto sopra, ed ovviamente non parlo
di allocare nello heap di python (faccio riferimento al primo esempio nella
pagina).
Mi rendo conto che č un lock logico ma funzionerebbe lo stesso.
Ci proverņ e saprņ dire come va.


>> Sembrerebbe anche qui:
>>
>> https://docs.python.org/3.5/library/multiprocessing.html#module-multiprocessing.sharedctypes
>>
>> Che era, in effetti, quel che cercavo.
>>
>
> Io continuo a credere che tu stia ficcandoti da solo in un bagno di sangue.
> Perche' sei convinto che la memoria condivisa ti *serva*?
>
>

mi cito: per vedere l'effetto che fa :-)

Nel senso che adesso NON ne ho bisogno, ma voglio provarlo per vedere SE
come e quando, prima o poi, mi converrebbe usarlo.

E grazie a tutti per le dritte ed i suggerimenti impliciti ed espliciti.

>
>

>

>> Di passaggio vedo che pickle č usato solo per Queue in code FIFO ma che
>> la Pipe sottostante non la usa.
>>
>
> Si, e' corretto. Il motivo e' che la pipe "astrae meno" e ti da
> fondamentalmente un'interfaccia a "byte".
> E apre tutto il problema di come separare i messaggi, cosa considerare un
> messaggio... nota che le pipe non sono multi reader/multi writer (a meno
> che non aggiungi tu sincronizzazione... che vuole dire che di fatto ti
> re-implementi le Queue -- nota che per vari motivi le Queue di mp hanno
> *anche* un thread per darti la semantica attesa).
>

Non ci pensavo proprio :-)

>
>  Io personalmente quello che spesso e' fare completamente a mano. Non
> trovo le pipe di mp particolarmente utili. In molti casi un socket unix
> domain a datagrammi e' proprio la cosa che vuoi, per dire.
>

Di nuovo grazie per la dritta: non ci avevo proprio pensato.

Alex
-------------- parte successiva --------------
Un allegato HTML č stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20160525/fc12e3d3/attachment.html>


Maggiori informazioni sulla lista Python