Пример многопоточности Cherrypy

Я действительно знаю, что cherrypy является многопоточным и также имеет реализацию пула потоков.
Таким образом, я хотел попробовать пример, показывающий многопоточное поведение.
Теперь позволяет, говорят, что я имею свою некоторую функцию в корневом классе и отдыхаю, все вещи настроены

def testPage(self, *args, **kwargs):
    current = threading.currentThread()
    print 'Starting ' , current
    time.sleep(5)
    print 'Ending ' ,current
    return 'Hello World'

Теперь позволяет, говорят, что я выполняю свою страницу как http://localhost:6060/root/testPage на 3-4 вкладках браузера.
То, что заканчивается, я добираюсь,

Starting 
Ending 
Starting 
Ending 
Starting 
Ending 

Вещь я могу ясно понять, что она создает новые потоки для обработки каждого нового запроса, но я не могу выяснить, почему каждый раз я добираюсь
запуск... заканчивающийся.. запуск.. окончание
и почему не запуск... запускающийся.. окончание.. окончание иногда
Поскольку то, что мое предположение - то, что time.sleep сделает некоторый поток для приостановки и другой, может выполниться в то время.

6
задан Prahlad 2 July 2010 в 10:16
поделиться

1 ответ

Это почти наверняка ограничение вашего браузера, а не CherryPy. Например, Firefox 2 будет делать не более двух одновременных запросов к одному и тому же домену, даже с несколькими вкладками. И если каждая вкладка также получает значок ... это оставляет одно нажатие на вашем обработчике.

См. http://www.cherrypy.org/ticket/550 для билета с аналогичным исходным кодом и более длинным доказательством.

2
ответ дан 17 December 2019 в 20:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: