recherche
MaisonJavajavaDidacticielRésumé et analyse des connaissances multithread en Java

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.

Présentation du processus

  1. 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.

  2. Un processus est un processus d'exécution dynamique d'un programme sur un ensemble de données.

  3. 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.

  4. Chaque processus possède son propre espace mémoire et ses propres ressources système.

  5. Le programme que nous écrivons est utilisé pour décrire les fonctions que le processus veut remplir et comment le réaliser

  6. L'ensemble de données est ce que ; le programme le fait pendant l'exécution. Ressources à utiliser ;

  7. 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.

  8. 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é.

Présentation des threads

L'émergence des threads vise à réduire la consommation de changement de contexte et à améliorer la concurrence du système.

Les threads éliminent le défaut selon lequel un processus ne peut faire qu'une seule chose, rendant ainsi possible la concurrence intra-processus.

Exemple de fil de discussion :

(1) Supposons qu'un programme de texte doive recevoir une saisie au clavier, afficher le contenu à l'écran et enregistrer les informations sur le disque dur.

(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.

Les threads sont également appelés processus légers.

Il s'agit d'une unité d'exécution CPU de base et de la plus petite unité du processus d'exécution du programme.

Composé d'un identifiant de thread, d'un compteur de programme, d'un ensemble de registres et d'une pile

L'introduction de threads réduit la surcharge d'exécution simultanée des programmes et améliore les performances de concurrence du système d'exploitation.

Les threads ne disposent pas de leurs propres ressources système.

La relation entre le processus et le thread

  1. Un processus est une activité en cours d'exécution d'un programme dans l'ordinateur sur une certaine collection de données.

  2. Le processus est l'unité de base de l'allocation et de la planification des ressources dans le système et la base de la structure du système d'exploitation

  3. Un thread est un entité du processus et est l'unité de base de la planification et de la répartition du processeur

  4. Un thread est une unité de base qui est plus petite qu'un processus et peut s'exécuter indépendamment

  5. La relation entre les processus et les threads :

(1) Un thread ne peut appartenir qu'à un seul processus, et un processus peut avoir plusieurs threads, mais il y a au moins un thread

(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

Principe de fonctionnement du programme Java

  1. La commande java démarrera la machine virtuelle Java, c'est-à-dire démarrer la JVM, ce qui équivaut au démarrage d'une application, c'est-à-dire démarrer un processus ;

  2. Le processus démarrera automatiquement un thread principal

  3. Ensuite, le thread principal appelle la méthode principale d'une certaine classe ;

  4. Donc, la méthode principale s'exécute dans le thread principal, et tous les programmes précédents sont monothreads

  5. le démarrage de jvm est multithread :

(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.

Le contenu lié au multi-threading est divisé en plusieurs parties :

  1. Préparez-vous : le statut du fil

  2. Méthode de force intérieure : méthodes (mécanismes) dont dispose chaque objet

  3. Taizu Changquan : classe de fil de base

  4. Manuel Nine Yin : Multi- avancé classe de contrôle des threads

Zhaomabu : Statut du fil (cinq types)

  1. Nouveau : Nouveau statut, lorsque l'objet thread est créé, c'est-à-dire entrer dans le nouvel état, tel que : Thread t = new MyThread()

  2. 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()

  3. <.> En cours d'exécution : état d'exécution. Lorsque le processeur commence à planifier les threads à l'état prêt, le thread peut réellement être exécuté à ce moment-là, c'est-à-dire qu'il entre dans l'état d'exécution.

  4. Bloqué : état bloqué Pour une raison quelconque, le thread en état d'exécution abandonne temporairement le droit d'utiliser le processeur et arrête l'exécution à ce moment-là, il entre dans l'état bloqué. il entre dans l'état prêt, il y a une chance d'être appelé à nouveau par le CPU pour entrer dans l'état d'exécution

  5. Mort : état de mort, le thread a terminé son exécution ou a quitté l'exécution. () en raison d'une exception, et le thread a terminé son cycle de vie

  6. Remarque :

    (1) L'état prêt est la seule entrée à l'état d'exécution

    (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


Méthode Inner Power Heart : Chaque objet a des méthodes

synchronisées, attendre et notifier sont des outils de synchronisation que tout objet a

moniteur :

( 1) est appliqué aux problèmes de synchronisation Outil de planification de threads artificiels

(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

attendre/notifier : les deux doivent exister. dans le bloc synchronisé

Et ces trois mots-clés ciblent le même moniteur, ce qui signifie qu'après l'attente, d'autres threads peuvent entrer dans l'exécution du bloc synchronisé

Taizu Changquan : Basic Thread Class

  1. Classe de thread

  2. Classe exécutable

  3. Classe appelable

Jiuyin Zhenjing : Classe de contrôle multithread avancée

Classe ThreadLocal :

(1) Variables opposées utilisées pour enregistrer les threads

(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.

Classe atomique (AtomicInteger/AtomicBoolean)

Classe de verrouillage : ReentrantLock/ReentrantReadWriteLock.ReadLock/ReentrantReadWriteLock.WriteLock


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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.