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