Les threads et les processus ont-ils tous deux des piles indépendantes? Si la réponse est oui, quelle est la différence entre eux? Merci d'avance!Quelle est la différence entre la pile d'un thread et la pile d'un processus
Répondre
Les processus n'ont pas de pile. Les threads le font. Un processus est généralement un espace d'adressage, des ressources et un ou plusieurs threads. Les threads exécutent le code réel du processus afin qu'ils aient chacun leur propre pile.
L'article wiki sur des piles a plus d'informations http://en.wikipedia.org/wiki/Call_stack
D'après ce que je sais (et corrigez-moi si je me trompe), chaque processus est donné son propre espace mémoire, qui contient 3 segments: le texte segement (le segment de données qui contient un certain nombre de choses comme les variables locales, les paramètres des fonctions, l'adresse à laquelle une fonction devrait revenir.
Chaque processus peut avoir un ou plusieurs threads. Les threads du processus partagent l'espace mémoire du processus, ils ne possèdent pas de mémoire propre, ce qui les rend faciles à créer et à terminer.
Récapitulons: le processus a sa propre pile, le thread n'a pas sa propre pile.
Si je me trompe à ce sujet, n'hésitez pas à me corriger.
En fait, le livre "systèmes d'exploitation" de M. Tanenbaum couvre ce problème.
- 1. La pile .NET vs pile de Windows
- 2. Quelle est la différence entre le tuyau et la douille?
- 3. Quelle est la différence entre dict() et {}?
- 4. Quelle est la différence entre "$^N" et "$ +"?
- 5. Quelle est la différence entre = et: =
- 6. quelle est la différence entre:.! et: r !?
- 7. Quelle est la différence entre ~ et! opérateur?
- 8. Quelle est la différence entre Metro 1.5 et 2.0?
- 9. différence entre la mémoire de la pile et la mémoire de tas
- 10. Quelle est la différence entre la saturation et la luminosité?
- 11. Quelle est la différence entre un thread de travail et un thread d'E/S?
- 12. Quelle est la différence entre la sérialisation et l'encodage?
- 13. Quelle est la différence entre la version et l'itération?
- 14. Quelle est la différence entre la programmation parallèle et multicœur?
- 15. Quelle est la différence entre la plate-forme et l'outil?
- 16. Quelle est la différence entre system() en C et Perl?
- 17. Quelle est la différence entre while (true) et loop?
- 18. Quelle est la différence entre Thread.Sleep (timeout) et ManualResetEvent.Wait (timeout)?
- 19. Quelle est la différence entre le travail de thread et d'arrière-plan?
- 20. Quelle est la différence entre nohup et un démon?
- 21. Quelle est la différence entre Boost.MPI et Boost.Interprocess?
- 22. Quelle est la différence entre PS1 et PROMPT_COMMAND
- 23. Quelle est la différence
- 24. Quelle est la différence entre log4net.ThreadContext et log4net.LogicalThreadContext?
- 25. Quelle est la différence entre ces extraits?
- 26. Quelle est la différence entre applicationDidReceiveMemoryWarning, didReceiveMemoryWarning?
- 27. Quelle est la différence entre ces importations?
- 28. Quelle est la différence entre Inclusive et Exclusive OU?
- 29. Quelle est la différence entre ces commentaires
- 30. Quelle est la différence entre Multiple Héritage et Polymorphisme?