----Messaggio originale----

Da: s.feder...@gmail.com

Data: 25/03/2015 13.14

A: "Discussioni generali sul linguaggio Python"<python@lists.python.it>

Ogg: Re: [Python] 10 myths



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?




Se ho capito bene, Futures?
https://www.python.org/dev/peps/pep-3148/
https://pypi.python.org/pypi/futures

_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a