Maison > Java > javaDidacticiel > Coût du multithreading Java

Coût du multithreading Java

黄舟
Libérer: 2017-02-28 10:16:32
original
1296 Les gens l'ont consulté

La conversion d'un monothread à un multithread offre bien plus que de simples avantages. Cela a aussi un prix. N'utilisez pas le multithreading dans votre application simplement parce que vous le pouvez. Vous devriez avoir une bonne idée de ce que vous gagnerez en faisant cela, et les avantages dépasseront les coûts. En cas de doute, essayez de tester pour mesurer les performances ou la réactivité d'une application au lieu de simplement deviner.

Conception plus complexe

Bien que certaines parties du multi-threading soient plus simples que le monothreading, d'autres parties sont plus complexes. L’accès aux données partagées via du code exécuté à partir de plusieurs threads nécessite une attention particulière. L'interaction des threads est toujours simple en principe. Les erreurs résultant d’une synchronisation incorrecte des threads sont difficiles à détecter, à se produire et à corriger.

Surcharge de changement de contexte

Lorsqu'un processeur passe d'un thread à un autre, le processeur doit enregistrer les données locales du thread actuel, pointeur de programme et d'autres informations, ainsi que le chargement des données locales du thread suivant, le pointeur de programme à exécuter. Ce commutateur est appelé « commutateur de contexte ». Le CPU passe du contexte d'exécution d'un thread au contexte d'exécution d'un autre thread.

Le changement de contexte n'est pas bon marché. Vous ne voulez pas basculer entre les threads plus longtemps que nécessaire.

Augmenter la consommation de ressources

Un thread nécessite certaines ressources de l'ordinateur pour fonctionner. De plus, un thread du CPU nécessite de la mémoire pour maintenir sa pile locale. Certaines ressources peuvent également être occupées au sein du thread de gestion du système d'exploitation. Essayez de créer un programme avec 100 threads qui ne fait rien d'autre qu'attendre et voyez combien de mémoire il consomme lors de son exécution.


Ce qui précède est le contenu du coût multithread Java. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (m.sbmmt.com) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal