[Python] 10 myths

Simone Federici s.federici a gmail.com
Mer 25 Mar 2015 13:14:25 CET


Nicola Larosa <nico a teknico.net>:

> Impatta la scalabilità. Usare un thread per ogni operazione
> concorrente significa esser limitati a qualche migliaio di esecuzioni
> contemporanee, con alti consumi di memoria.
>
> 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.
>

Vista la vostra esperienza,
giusto per paragone, visto che conosco bene java,

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.

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.

E i threads che gestisono le richieste sono rapidi in quanto non non sono
appesi ad aspettare bytes dalle socket.

c'è una libreria python che si avvicina a questo modello?
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150325/31379b62/attachment.html>


Maggiori informazioni sulla lista Python