Что лучше, однопоточный или многопоточный сервер?

Мне нужно создать простую связь клиент <-> сервер для передачи файлов с использованием языка C (Linux).

Сервер принимает соединения через порт 10000, я не знаю, лучше ли создавать новый поток для каждого запроса или создавать фиксированное количество потоков и использовать асинхронную технику.

CASE A:

client --> server --> (new thread) --> process the request

CASE B:

SERVER --> create thread 1 - thread 2 - thread 3

then

client1 --> server --> thread 1
client2 --> server --> thread 2
client3 --> server --> thread 3
client4 --> server --> thread 1
client5 --> server --> thread 2
client6 --> server --> thread 3

В этом случае поток 1 может обрабатывать многие запросы клиента

Мои соображения:

СЛУЧАЙ 1: Быстрее, но расходует много памяти

СЛУЧАЙ 2: Медленнее, но используется мало памяти

Я ошибаюсь?

5
задан unwind 11 May 2011 в 11:55
поделиться