In questi casi un elemento importante è il prodotto di tempo medio di servizio dell'evento e rateo medio degli eventi (numero puro). Se questo numero è basso (significativamente minore di 1), un unico loop che si appende su select può essere adeguato; se è alto, si può avere vantaggio scorporando più loop, ognuno su una sua cpu, salvo che ci siano interdipendenze tra gli eventi.Ikitt ha scritto: ...
Dipende dall'applicazione.
Per esempio, nel caso di server web (statici), singole applicazioni monoprocesso ma che usano la programmazione asincrona (select, (e)poll o framework tipo libevent o twisted)
ottengono spesso prestazioni di assoluto rilievo, quando non le migliori del lotto, e non sono significativamente piu` difficili da programmare del corrispondente multithread (anzi).
Sarebbe lecito aspettarsi quindi prestazioni potenzialmente ancora maggiore da cluster di dette applicazioni con a monte un ripartitore del carico.
Uso il condizionale perche`, sebbene abbia letto di simili configurazioni, non ci ho mai concretamente messo mano.
...
C'è poi un altro elemento da considerare, e cioé il prodotto di tempo massimo di servizio e rateo massimo, perché in alcune applicazioni un ritardo di servizio non è assolutamente accettabile (es. controllo di movimento).

