Пожалуйста помогите разобраться с 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/