Я знаю, что cherrypy является многопоточным и также имеет реализацию пула потоков.Поэтому я хотел попробовать пример, показывающий многопоточное поведение.Теперь допустим, что у меня есть некоторая функция в корневом классе, а все остальное настроено
def testPage(self, *args, **kwargs):
current = threading.currentThread()
print 'Starting ' , current
time.sleep(5)
print 'Ending ' ,current
return '<html>Hello World</html>'
Теперь допустим, что я запускаю свою страницу как http://localhost:6060/root/testPage в 3-4 вкладках браузера.Какой результат я получаю
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)>
Я четко понимаю, что это создает новые потоки для обработки каждого нового запроса, но я не могу понять, почему каждый раз, когда я получаюначиная ... ending..starting..endingи почему бы не начать ... начало .. конец .. конец иногдаПотому что я предполагаю, что time.sleep заставит один поток приостановить, а другой сможет выполнить в это время.