2009-12-31 5 views
0

Я хотел бы знать, почему мы предпочитаем, чтобы сделать веб-серверы многопоточнойМногопроцессорный веб-сервер и многопоточный веб-сервер?

вместо сделать это мульти-процесс веб-сервера ....

Является ли это из-за унаследованных проблем .....

Я хотел бы услышать практические соображения, а также теоретические причины

+1

На какой платформе? Unix? Окна? –

ответ

4

В * nix, чтобы запустить процесс, необходимо дублировать все ресурсы родительского процесса. Все дескрипторы файлов родителей дублируются, например, и создается новое пространство памяти, чтобы содержать новый процесс. Когда процесс завершается, все должно быть снесено.

Резьба, с другой стороны, по существу представляет собой стек. Очень быстро начать и остановить.

Ранние веб-серверы не использовали потоки по простой причине: они еще не были реализованы.

1

Нитки, как правило, дешевле процессов.

+0

Что дешевле ..... означает ????? – Omar

+0

У них обычно меньше накладных расходов памяти. – SLaks

+1

Особенности зависят от операционной системы. В общем, я понимаю, что программирование UNIX (/ Linux/etc) имеет тенденцию быть несколько более ориентированным на процесс, а Windows более ориентированным на потоки, отчасти потому, что Windows (или, исторически) имела низкую производительность, связанную с несколькими процессами. – fennec

Смежные вопросы