Пожалуйста помогите разобраться с epoll

К сожалению, прочитав несколько статей и посмотрев несколько примеров использования epoll, я так и не смог понять, какие преимущества он нам дает.

Попробую смоделировать ситуацию, у нас есть простейший http сервер, который может обрабатывать запросы только на статический контент(html, jpg и тд). Сервер имеет простейшую архитектуру - крутится в бесконечном цикле, когда ему приходит запрос на соединение, он открывает доп поток, и обрабатывает пришедший запрос в нем, в то время, как основной поток продолжает слушать порт.

Я не понимаю, как работу этого сервера может ускорить epoll. Как я понял, при использовании epoll, каждый клиентский дескриптор нужно добавлять в список потоков epoll, и когда этот дескриптор будет готов к вводу/выводу, при вызове epoll_wait нам вернется этот дескриптор, который, в свою очередь, мы сможем обработать и закрыть. Но как этот шаг поможет, если когда нам приходит http запрос и мы открываем клиентский дескриптор, он уже готов к вводу выводу.

Разъясните эти моменты пожалуйста, если возможно приведите пример архитектуры epoll сервера. я прочел эти статьи

https://www.opennet.ru/base/dev/epoll_example.txt.html

https://habr.com/ru/post/416669/

https://habr.com/ru/company/infopulse/blog/415259/


Ответы (0 шт):