2017-09-07 6 views
-1

Je suis un peu confus. Le multithreading implique un traitement parallèle, alors pourquoi ne pouvons-nous pas utiliser plusieurs cœurs pour exécuter des threads différents? J'ai trouvé cette instruction dans ce lien- https://www.tutorialspoint.com/operating_system/os_multi_threading.htm Veuillez expliquer l'instruction "L'application multithread ne peut pas tirer parti du multitraitement."Est-il vrai que le multithread ne peut pas tirer parti du multitraitement? Si oui, pourquoi?

Merci à l'avance.

Répondre

1

Le multitraitement dans cette phrase concerne plusieurs processus, pas les processeurs.

Les fils appartenant au même procédé ne sont pas isolés. Par exemple, lorsqu'un thread se bloque, tout le programme va planter.

UPD: désolé, j'ai relu l'article et j'ai réalisé que ma réponse initiale était incorrecte. L'auteur semble considérer les threads "émulés" du logiciel exécutés à partir de la même unité d'exécution sans aucune parallélisation. Vous trouvez difficilement une telle implémentation de bibliothèque de threads dans la pratique. La plupart des bibliothèques de threads sont soutenues par des threads du noyau.

+0

Donc, je peux dire que plusieurs threads d'un même processus peuvent être exécutés sur plusieurs cœurs? –

+0

Habituellement, oui, vous pouvez –

+0

Il existe quelques variantes Eunuchs où les threads ne peuvent être exécutés que sur un seul cœur. Cependant, ce sont des cas de plus en plus exceptionnels. – user3344003