Здравствуйте, The Phantom Daemon, Вы писали:
TPD>1. Не постоянное число процессов/потоков. Один мастер-процесс обрабатывает запросы на соединение и для каждого создает новый поток/процесс. С каждым клиентом ассоциирован один процесс который и обрабатывает поступающие от него запросы.
TPD>2. Постоянное число потоков/процессов. Один мастер-процесс создает число потоков равное числу процессоров (или ядер) в системе или близкое к нему. Каждый из таких потоков/процессов обрабатывает несколько соединений с клиентами.
Второй способ способен обеспечить большую производительность, чем первый, т.к. создание процесса/потока — достаточно затратная операция, и чем их больше, тем больше накладные расходы на переключение между ними. От себя могу порекомендовать сначала сделать по первому варианту, а потом, когда всё будет работать — заменить на второй (при этом, естественно, сразу учитывать возможность замены, т.е. абстрагировать способ работы с многопоточностью от остального кода).