Maison >Java >javaDidacticiel >Le multithreading est-il concurrent ou parallèle ?
Le soi-disant processus (processus) est une zone mémoire qui contient certaines ressources. Le système d'exploitation utilise des processus pour diviser son travail en unités fonctionnelles. Une ou plusieurs unités d'exécution contenues dans un processus sont appelées threads. Un processus dispose également d’un espace d’adressage virtuel privé accessible uniquement par le thread qu’il contient.
Un thread ne peut appartenir qu'à un seul processus et il ne peut accéder qu'aux ressources appartenant à ce processus. Lorsque le système d'exploitation crée un processus, celui-ci s'applique automatiquement à un thread appelé thread principal ou thread principal. (Apprentissage recommandé : Tutoriel vidéo Java)
Les processus ne s'exécutent pas vraiment en même temps, mais s'exécutent simultanément.
Un processus a au moins un thread. L'échelle de division des threads est plus petite que celle des processus, ce qui rend les programmes multithread hautement simultanés. De plus, le processus dispose d'une unité de mémoire indépendante pendant l'exécution et plusieurs threads partagent la mémoire, améliorant ainsi considérablement l'efficacité d'exécution du programme.
La différence entre un thread et un processus lors de l'exécution est que chaque thread indépendant a une entrée pour l'exécution du programme, une séquence d'exécution séquentielle et une sortie pour le programme. Cependant, les threads ne peuvent pas s'exécuter indépendamment et doivent exister dans le programme d'application, et le programme d'application fournit un contrôle d'exécution de plusieurs threads.
D'un point de vue logique, la signification du multi-threading est que dans une application, plusieurs parties d'exécution peuvent être exécutées en même temps. Cependant, le système d'exploitation ne considère pas plusieurs threads comme plusieurs applications indépendantes pour mettre en œuvre la planification et la gestion des processus et l'allocation des ressources.
Plusieurs threads ou processus exécutés "simultanément" ne sont qu'une manifestation sensorielle. En fait, les processus et les threads s'exécutent simultanément. Le mécanisme de planification des threads du système d'exploitation divise le temps en plusieurs segments de temps (tranches de temps) et les distribue aussi uniformément que possible aux programmes en cours d'exécution. exécuté, et d'autres Puis attendez. Le processeur bascule entre ces processus ou threads. Au niveau micro, tous les processus et threads sont stop-and-go, mais au niveau macro, ils sont tous en cours d'exécution. Ce phénomène de tout en cours d'exécution est appelé concurrence, mais il ne « se produit pas en même temps » dans l'absolu. sens.
Plus d'articles techniques liés à Java, veuillez visiter la colonne Tutoriel de développement Java pour apprendre !
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!