Maison  >  Article  >  Concurrence multithread

Concurrence multithread

(*-*)浩
(*-*)浩original
2019-09-02 13:28:192717parcourir

Concurrence multithread

"Concurrence élevée et multi-threading" sont toujours mentionnés ensemble, donnant l'impression que les deux sont égaux, mais en fait concurrence élevée ≠ multi -threading

Multi-threading(Apprentissage recommandé : Tutoriel vidéo Web front-end)

Le multi-threading est une fonctionnalité de Java, car désormais les processeurs sont multicœurs et multithreads et peuvent effectuer plusieurs tâches en même temps. Afin d'améliorer l'efficacité d'exécution de la JVM, Java fournit ce mécanisme multithread pour améliorer l'efficacité du traitement des données. Le multi-threading correspond au processeur et la concurrence élevée correspond aux demandes d'accès. Vous pouvez utiliser un seul thread pour traiter toutes les demandes d'accès, ou utiliser plusieurs threads pour traiter les demandes d'accès en même temps.

Dans le passé, à l'ère du processeur unique, une seule tâche ne pouvait exécuter qu'un seul programme à un moment donné. Plus tard, il s’est développé vers l’étape multitâche, où l’ordinateur peut exécuter plusieurs tâches ou processus en parallèle au même moment.

Bien qu'il ne s'agisse pas du "même moment" dans le vrai sens du terme, plusieurs tâches ou processus partagent un processeur, et il appartient au système d'exploitation d'effectuer la commutation en cours du processeur entre plusieurs tâches, afin que chaque tâche ait une chance de s'exécuter dans une certaine tranche de temps.

Plus tard, la technologie multithread a été développée, permettant à plusieurs threads de s'exécuter en parallèle au sein d'un programme. L'exécution d'un thread peut être considérée comme un processeur exécutant le programme. Lorsqu'un programme s'exécute en multi-threading, il semble que plusieurs processeurs exécutent le programme en même temps.

En bref, le multi-threading peut être compris de cette façon : le multi-threading est une méthode de programmation pour gérer une concurrence élevée, c'est-à-dire que la concurrence doit être implémentée avec le multi-threading.

Concurrence élevée

La concurrence élevée n'est pas quelque chose d'exclusif à JAVA. Il s'agit d'un concept large et indépendant du langage proposé pour fournir de meilleurs services Internet.

Scénarios typiques, tels que : 12306 billets de train récupérés, événement de vente flash Tmall Double Eleven, etc. L'apparition de cette situation amènera le système à effectuer un grand nombre d'opérations pendant cette période, telles que des demandes de ressources, des opérations de base de données, etc. Si une concurrence élevée n'est pas correctement gérée, cela réduira non seulement l'expérience utilisateur (le temps de réponse à la demande est trop long), mais peut également entraîner un temps d'arrêt du système. Dans les cas graves, cela peut même entraîner des exceptions de MOO et l'arrêt du système.

Si vous souhaitez que le système puisse s'adapter à une concurrence élevée, vous devez optimiser le système sous tous les aspects, y compris le matériel, le réseau, l'architecture du système, la sélection du langage de développement, l'utilisation des structures de données. , optimisation d'algorithmes, optimisation de bases de données, etc... et le multi-threading n'est qu'une des solutions.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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