<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">Il giorno 25 maggio 2016 18:25, enrico franchi <span dir="ltr"><<a href="mailto:enrico.franchi@gmail.com" target="_blank">enrico.franchi@gmail.com</a>></span> ha scritto:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2016-05-25 17:07 GMT+01:00 alessandro medici <span dir="ltr"><<a href="mailto:alexxandro.medici@gmail.com" target="_blank">alexxandro.medici@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><br></blockquote></span><div>Come al solito, passeggiare per la libreria porta spesso a dei bei risultati:</div><div> <a href="https://docs.python.org/3.5/c-api/memory.html" target="_blank">https://docs.python.org/3.5/c-api/memory.html</a></div><div>spiega anche bene come si potrebbe fare.</div><span><div><br></div></span></div></div></div></blockquote><div><br></div><div>A me sembra proprio di no. </div><div><br></div><div>Scusa... parliamoci chiaro. Diciamo che hai scritto un allocatore che lavora su un chunk di memoria condivisa. </div><div>Che vuole anche dire condivisa fra piu' processi (se no non e' particolarmente interessante).</div><div><br></div><div>Mi spieghi come hai intenzione di fare si che tutto questo non si rompa male *senza* usare lock?</div></div></div></div></blockquote><div><br></div><div>Scrivendoci sopra solo quando NON ho altri processi che ci lavorano. Per esempio lanciando</div><div>gli altri processi dopo averci scritto sopra, ed ovviamente non parlo</div><div>di allocare nello heap di python (faccio riferimento al primo esempio nella pagina).</div><div>Mi rendo conto che è un lock logico ma funzionerebbe lo stesso.</div><div>Ci proverò e saprò dire come va.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><div><br></div></span><div>Sembrerebbe anche qui:</div><div><a href="https://docs.python.org/3.5/library/multiprocessing.html#module-multiprocessing.sharedctypes" target="_blank">https://docs.python.org/3.5/library/multiprocessing.html#module-multiprocessing.sharedctypes</a></div><div><br></div><div>Che era, in effetti, quel che cercavo.</div></div></div></div></blockquote><div><br></div><div>Io continuo a credere che tu stia ficcandoti da solo in un bagno di sangue.</div><div>Perche' sei convinto che la memoria condivisa ti *serva*?</div><div> </div></div></div></div></blockquote><div><br></div><div>mi cito: per vedere l'effetto che fa :-)</div><div><br></div><div>Nel senso che adesso NON ne ho bisogno, ma voglio provarlo per vedere SE</div><div>come e quando, prima o poi, mi converrebbe usarlo.</div><div><br></div><div>E grazie a tutti per le dritte ed i suggerimenti impliciti ed espliciti.   </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div> </div></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div> </div></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>Di passaggio vedo che pickle è usato solo per Queue in code FIFO ma che</div><div>la Pipe sottostante non la usa.</div></div></div></div></blockquote><div><br></div><div>Si, e' corretto. Il motivo e' che la pipe "astrae meno" e ti da fondamentalmente un'interfaccia a "byte".</div><div>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). </div></div></div></div></blockquote><div><br></div><div>Non ci pensavo proprio :-) </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div> 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. </div></div></div></div></blockquote><div><br></div><div>Di nuovo grazie per la dritta: non ci avevo proprio pensato. </div><div><br></div><div>Alex</div></div><br></div></div>