Sé que cherrypy es una aplicación multiproceso y también tiene una implementación de subprocesos.
Así que quería probar un ejemplo que muestra el comportamiento multiproceso.
Ahora digamos que tengo a mi alguna función en la clase raíz y descansar todas las cosas están configurados
Ejemplo multiproceso de Cherrypy
def testPage(self, *args, **kwargs):
current = threading.currentThread()
print 'Starting ' , current
time.sleep(5)
print 'Ending ' ,current
return '<html>Hello World</html>'
Ahora digamos que tengo mi página como http://localhost:6060/root/testPage en 3-4 pestañas del navegador.
Qué resultado que consigo es
Starting <WorkerThread(CP WSGIServer Thread-10, started 4844)>
Ending <WorkerThread(CP WSGIServer Thread-10, started 4844)>
Starting <WorkerThread(CP WSGIServer Thread-7, started 4841)>
Ending <WorkerThread(CP WSGIServer Thread-7, started 4841)>
Starting <WorkerThread(CP WSGIServer Thread-10, started 4844)>
Ending <WorkerThread(CP WSGIServer Thread-10, started 4844)>
Lo que puedo entender claramente que se está creando nuevos temas para procesar cada nueva petición, pero no puedo entender por qué cada vez que tengo
de partida ... ending..starting ..ending
y por qué no comenzar ... starting..ending..ending sometimes
Porque mi suposición es que time.sleep hará que un hilo se suspenda y otro puede ejecutarse en ese momento.
Deberías probar con un software específico, p. httperf: httperf --server = 127.0.0.1 --port = 6060 --num-conn = 50 --rate = 10 –