Le contenu de cet article est un résumé et une analyse des connaissances multithread en Java. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Processus : un programme en cours d'exécution est une unité indépendante pour l'allocation des ressources et les appels par le système.
Un processus est un processus d'exécution dynamique d'un programme sur un ensemble de données.
Un processus se compose généralement de trois parties : un programme, un ensemble de données et un bloc de contrôle de processus.
Chaque processus possède son propre espace mémoire et ses propres ressources système.
Le programme que nous écrivons est utilisé pour décrire les fonctions que le processus veut remplir et comment le réaliser
L'ensemble de données est ce que ; le programme le fait pendant l'exécution. Ressources à utiliser ;
Le bloc de contrôle de processus est utilisé pour enregistrer les caractéristiques externes du processus et décrire le processus de changement d'exécution du processus. utilisez-le pour contrôler et gérer le processus. Il s'agit d'un processus sensible au système. L'identifiant unique existe.
Exemple du processus :
(1) Imaginez qu'un informaticien doté de bonnes compétences culinaires prépare un gâteau d'anniversaire pour sa fille (2) Il a une recette pour faire un gâteau d'anniversaire et dispose des ingrédients nécessaires en cuisine : farine, œufs, sucre, etc.
(3) Dans cette métaphore, la recette du gâteau est le programme
(4) L'informaticien est le processeur du processeur
(5) Les différentes matières premières pour fabriquer le gâteau sont des données d'entrée ;
(6) Le processus est la somme d'une série d'actions au cours desquelles le chef lit la recette, obtient divers ingrédients et cuit le gâteau.
(7) Supposons maintenant que le fils de l'informaticien sorte en pleurant et dise que sa tête a été piqué par une abeille
(8) L'informaticien enregistre ce qu'il a fait selon la recette, et c'est pour sauver le état actuel du processus ;
(9) Sortez ensuite un manuel de premiers secours et suivez les instructions pour traiter la piqûre
(10) A ce moment nous verrons le processeur passer d'un processus à un autre High- ; processus prioritaires ;
(11) Chaque processus a son propre programme (recettes et manuels de premiers secours
(12) Une fois la piqûre d'abeille traitée, l'informaticien revient faire des gâteaux
(13) ; ) Continuez là où il s'est arrêté.
(2) S'il n'y a qu'un seul processus, cela entraînera inévitablement l'embarras de ne pouvoir faire qu'une seule chose à la fois, ce qui signifie que lors de la sauvegarde, aucune saisie au clavier n'est possible
(3) S'il existe plusieurs processus, chaque processus est responsable d'une tâche ;
(4) Le processus A est responsable de la saisie au clavier, le processus B est responsable de l'affichage du contenu à l'écran et le processus C est responsable de l'enregistrement du contenu sur le disque dur. disk;
(5) La collaboration entre A, B et C implique ici des problèmes de communication de processus, et ils ont tous besoin du même contenu : contenu textuel
(6) Une commutation constante entraînera des pertes de performances.
(7) S'il existe un mécanisme qui permet à A, B et C de partager des ressources
(8) De cette façon, moins de contenu doit être enregistré et restauré pour le changement de contexte
(9 ; ) En même temps, cela peut réduire la perte de performances causée par la communication.
(10) Ce mécanisme est du fil.
(2) Les ressources sont allouées aux processus, le même processus. Tous les threads partagent toutes les ressources du processus
(3) Le processeur est alloué aux threads, c'est-à-dire que ce qui s'exécute réellement sur le processeur est le thread
(1) Parce que le thread de récupération de place doit également être démarré au démarrage de la jvm, sinon un débordement de mémoire se produira facilement
(2) Le thread de récupération de place actuel plus le thread principal précédent ; , au moins deux threads sont démarrés, le démarrage de jvm est donc multithread.
Préparez-vous : le statut du fil
Méthode de force intérieure : méthodes (mécanismes) dont dispose chaque objet
Taizu Changquan : classe de fil de base
Manuel Nine Yin : Multi- avancé classe de contrôle des threads
Nouveau : Nouveau statut, lorsque l'objet thread est créé, c'est-à-dire entrer dans le nouvel état, tel que : Thread t = new MyThread()
Runnable : état prêt, lorsque la méthode start() (t.start()) de l'objet thread est appelé, le thread entre dans l'état prêt. Le thread à l'état prêt signifie uniquement que le thread est prêt et attend l'exécution de la planification du processeur à tout moment. Cela ne signifie pas que le thread s'exécutera immédiatement après l'exécution de t.start()
(2) Si un thread veut entrer dans l'état d'exécution pour l'exécution, il doit d'abord être dans l'état prêt
(3) Selon la cause du blocage, l'état de blocage peut être divisé en trois types :
[1] En attente de blocage : le thread en état d'exécution exécute la méthode wait(), faisant entrer ce thread dans l'état d'attente de blocage
[2] Blocage synchrone : lorsque le thread ne parvient pas à acquérir. le verrou de synchronisation synchronisé (car le verrou est occupé par d'autres threads), il entrera dans l'état de blocage synchronisé
[3] Autre blocage : en appelant le thread sleep() ou When join() ou une requête d'E/S est émis, le thread entrera dans l’état de blocage. Lorsque l'état sleep() expire, join() attend que le thread se termine ou expire, ou que le traitement des E/S est terminé, le thread entre à nouveau dans l'état prêt
(2) Chaque objet Java dispose d'un moniteur pour surveiller la réentrance du code concurrent.
(3) Le moniteur ne joue aucun rôle lors du codage sans multi-threading. Au contraire, s'il est dans la plage synchronisée, le moniteur joue un rôle
(2) Lorsque ThreadLocal est utilisé pour gérer les variables, ThreadLocal est Chaque thread l'utilisation de la variable fournit une copie indépendante de la variable, de sorte que chaque thread peut modifier indépendamment sa propre copie sans affecter les copies correspondantes des autres threads.
(3) Contrôle de connexion couramment utilisé et utilisateur, tel que l'enregistrement des informations de session.
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!