Как эффективно использовать ресурсы сервера?

Решил попрактиковаться в написании клиент-серверных приложений. На сервере имеем что-то вроде этого:
while True:
            server.acceptNewClients()
            server.handleQueries()

Однако выходит, что такой сервер излишне нагружает систему даже без единого клиента. При запуске сразу ускоряются кулеры. Добавил в цикле задержку:
while True:
            server.acceptNewClients()
            server.handleQueries()
            time.sleep(0.1)

Теперь нет излишней нагрузки, но такой сервер будет неэффективен при большом количестве клиентов.

Есть какое-нибудь универсальное решение?
  • Вопрос задан
  • 282 просмотра
Решения вопроса 1
@asd111
нужно использовать механизм обмена сообщениями операционной системы т.е. например epool, kqueue и т.п. - реализованы в библиотеках libevent, libev
В таких случаях обработка происходит только после получения данных, а пока данных нет система ждет
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы