LINUX.ORG.RU

многопоточный сервер


0

0

я пытаюсь написать сервер одновременно обслуживающий большое количество долгоживущих соединений ( максимум 10 000 ). Сейчас я пытаюсь группировать несколько соединений в одной нити, например на одна нить обслуживает 100 соединений, но испытываю при этом жуткий геморой с синхронизацией.

Вопрос - а надо ли мне это? Может не стоит заморачиваться и порождать на каждое входящее соединение отдельную нить? Сколько потоков я смогу породить прежде чем системе поплохеет?

Машины используются многопроцессорные и многоядерные. Язык с++, библиотека для работы с сокетами - Boost.Asio.

★★
Ответ на: комментарий от tailgunner

> Интересно, как они "взвешивали"

Спроси у них сам. Я подозреваю, что имелось ввиду "с точки зрения планировщика"

execve
()
Ответ на: комментарий от anonymous

>а если сменить язык?

Ну вот так всегда, сначала предлагают сменить язык, потом платформу, а потом и пол и сексуальную ориентацию. :)

>проде erlang как раз писался для того то-бы делать подобные вещи... я не уверен, что erlang не даст просадки производительности по сравнению с С++.

И вобще, коней на переправе не меняют.

Vinick ★★
() автор топика
Ответ на: комментарий от Vinick

Спасибо всем за комментарии. Все-таки я решил добить существующую модель, с объединением нескольких соединений в одном потоке.

Vinick ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.