2016-05-28 2 views
1

Un thread bloqué provoque-t-il le blocage du processus? Pourquoi et comment? Merci à tous les experts pour répondre.Un thread bloqué provoque-t-il le blocage du processus? Pourquoi et comment?

+1

Un processus ne peut jamais être "bloqué". C'est un objet du système d'exploitation, un conteneur pour le code et les données exécutables. Le code est exécuté par les threads. Si le thread qui s'occupe de l'interface utilisateur se bloque ou quitte le bois en faisant autre chose que de s'occuper de l'interface utilisateur, alors vous risquez de conclure que le "processus est bloqué". –

+1

Le terme que nous utilisons pour les processus est généralement "accroché" plutôt que "bloqué". Un processus peut être bloqué parce que tous les threads du processus sont bloqués, comme dans un blocage, mais il peut aussi se bloquer parce qu'un thread entre dans une boucle infinie, ou il y a une répétition perpétuelle plus complexe impliquant plusieurs threads. –

Répondre

2

Un thread est un flux d'exécution via le code de processus, avec son propre compteur de programme, ses registres système et sa pile. Un fil est également appelé un processus de poids léger. Les threads permettent d'améliorer les performances des applications grâce au parallélisme. Les threads représentent une approche logicielle permettant d'améliorer les performances du système d'exploitation en réduisant le thread overhead est équivalent à un processus classique.

Chaque thread appartient à exactement un processus et aucun thread ne peut exister en dehors d'un processus. Chaque thread représente un flux de contrôle distinct. Les threads ont été utilisés avec succès dans la mise en œuvre des serveurs réseau et du serveur Web. Ils constituent également une base appropriée pour l'exécution parallèle d'applications sur des multiprocesseurs à mémoire partagée.

Donc, comme vous l'avez peut-être deviné, Non! Un thread ne peut pas bloquer un processus.

3

Un processus ne peut pas être bloqué car le concept de "bloqué" ne s'applique qu'à un thread d'exécution. Le seul sens significatif dans lequel vous pourriez dire qu'un processus a été bloqué est si le processus n'avait qu'un thread et que ce thread était bloqué.