Вопрос - а надо ли мне это? Может не стоит заморачиваться и порождать на каждое входящее соединение отдельную нить? Сколько потоков я смогу породить прежде чем системе поплохеет?
Машины используются многопроцессорные и многоядерные. Язык с++, библиотека для работы с сокетами - Boost.Asio.

