Nicola Larosa <n...@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?
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a