<br>
<blockquote>
----Messaggio originale----<br>
Da: s.federici@gmail.com<br>
Data: 25/03/2015 13.14<br>
A: "Discussioni generali sul linguaggio Python"<python@lists.python.it><br>
Ogg: Re: [Python] 10 myths<br>
<br>
<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Nicola Larosa <span dir="ltr"><<a href="mailto:nico@teknico.net" target="_blank">nico@teknico.net</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":2sy" class="a3s" style="overflow:hidden">Impatta la scalabilità. Usare un thread per ogni operazione concorrente significa esser limitati a qualche migliaio di esecuzioni contemporanee, con alti consumi di memoria.<br>
<br>
Per arrivare a milioni di connessioni contemporanee bisogna usare approcci più come gli eventi asincroni, o i "processi" di Erlang, o appunto le goroutine del runtime di Go.</div></blockquote></div><div class="gmail_extra"><br></div>Vista la vostra esperienza,<br><div><div class="gmail_signature"><div>giusto per paragone, visto che conosco bene java,</div><div><br></div><div>Per scalare milioni di connessioni si usa un selector thread che gestisce tutte le connessioni chiamate native I/O e attiva un thread da un pool per gestire la richiesta una volta che che è arrivata. Questo permette di avere migliaia di connessoni per JVM.</div><div><br></div><div>Tenendo conto che l'I/O è estremamente più lento di gestire una richiesta, un solo selector thread gestisce facilmente tante socket ciclando su ognuona di esse in modo sequenziale.</div><div><br></div><div>E i threads che gestisono le richieste sono rapidi in quanto non non sono appesi ad aspettare bytes dalle socket.</div><div><br></div><div>c'è una libreria python che si avvicina a questo modello?</div><div><br></div></div></div>
</div></div>
<br>
</blockquote>Se ho capito bene, Futures?<br>https://www.python.org/dev/peps/pep-3148/<br>https://pypi.python.org/pypi/futures<br>