<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>E capisci anche che praticamente *tutte* le operazioni su questi oggetti devono essere protette da un lock. Perche'? Beh... perche' se siamo in memoria condivisa vuole dire che piu' processi possono accedervi (o meglio... se li ho messi in memoria condivisa e' perche' voglio accederci da piu' processi).</div><div><br></div><div>Ecco... come ne usciamo? Abbiamo due soluzioni:</div><div>1. mettiamo un lock poco granulare sull'area di memoria </div><div>2. mettiamo lock granulari sugli oggetti</div></div></div></div></blockquote><div><br></div><div>Non mi sono spiegato: non si metterebbe NESSUN lock per l'accesso a quest'area. Sarebbero affari del programma quando come e perché lavorarci sopra.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra">Per il resto, e' un oggetto che riserva molte sorprese, e non del tipo divertente.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Se hai un problema I/O bound guardati cose come gevent, tornado, il vecchio twisted o il nuovo asyncio. </div></div></blockquote><div><br></div><div>concordo per asyncio, se del caso. <br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra">Se hai un problema CPU bound... boh, fai offload a chi puoi. Numpy in certi casi. Se no a volte con un po' di attenzione si possono fare cose belline con multiprocessing. Poi per dire l'ultima volta che lo ho messo in produzione mi sono scritto a mano tutte le primitive di comunicazione fra processi, perche' le implementazioni di default di multiprocessing non facevano per me (semantica, + tirano su thread, + sono lente... etc etc etc). Questo non vuole dire che per te non andranno bene: probabilmente se sono ancora li, vuole dire che vanno bene per la maggior parte delle persone.</div></div></blockquote><div><br></div><div>concordo anche qui.  In effetti stavo proprio pensando a casi specifici. Proverò.</div><div><br></div><div>Alex</div></div><br></div></div>