Задать вопрос
akalend
@akalend
программирую

Linux. Неблокируемоый сервер. Какой тип лучше использовать?

В Linux сервер на неблокируемом соединение можно создать тремя способами, через:

— select

— poll

— epoll

что лучше использовать, преимущества и недостатки каждого из типов.
  • Вопрос задан
  • 4858 просмотров
Подписаться 8 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
@NiGHt_LEshiY
Если очень много открытых соединений (n), то poll и epoll. Если активных соединений (k) меньше, то epoll будет лучше. Он «просмотрит» список дескрипторов за О(k), а poll за O(n).

По теме:
stackoverflow.com/questions/5383959
stackoverflow.com/questions/4039832
Ответ написан
Indexator
@Indexator
Вам наверное стоит обратить внимание на курс лекций Сетевое программирование в UNIX, которые
подготовили специалисты SkyDNS и компании «Айдеко»

а конкретней на лекцию о том Как решить проблему 10 000 соединений?, где
Автор курса Александр Патраков объясняет, какие функции можно вызывать вместо select(), чтобы переписанная с их использованием программа могла эффективно обрабатывать большое количество одновременных подключений.

Практическое задание состояло в переписывании астрологического сервера с использованием семейства функций epoll() и проверке, выдерживает ли он 10000 соединений.
Ответ написан
Комментировать
Ramires
@Ramires
Интересная статья на тему poll/select/многое другое
Ответ написан
Ваш ответ на вопрос

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

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