2009-12-31 4 views
0

Je voudrais savoir pourquoi nous préférons faire des serveurs Web multi-threadServeur Web multi-processus vs serveur Web multi-thread?

au lieu de rendre les serveurs Web multi-processus ....

Est-ce à cause des problèmes hérités du passé .....

Je voudrais entendre des raisons pratiques aussi bien que des raisons théoriques

+1

Sur quelle plateforme? Unix? Les fenêtres? –

Répondre

4

Sur * nix, pour démarrer un processus, vous devez dupliquer toutes les ressources du processus parent. Par exemple, tous les descripteurs de fichiers parents sont doublés et un nouvel espace mémoire est créé pour contenir le nouveau processus. Lorsque le processus se termine, tout doit être démoli.

Un fil, d'autre part, est essentiellement juste une pile. Très rapide pour démarrer et arrêter.

Les premiers serveurs Web n'utilisaient pas de thread pour une raison simple: ils n'étaient pas encore implémentés.

1

Les fils sont généralement moins chers que les processus.

+0

Qu'est-ce que moins cher ..... signifie ????? – Omar

+0

Ils ont généralement moins de frais généraux de mémoire. – SLaks

+1

Les spécificités dépendent du système d'exploitation. En général, je comprends que la programmation UNIX (/ Linux/etc) tend à être plus centrée sur les processus et Windows plus centrée sur les threads, en partie parce que Windows a (ou a toujours eu) des performances inférieures. – fennec