Explication détaillée des bases du multithreading Java
1. Statut du fil
2. Création et utilisation de multi-threads
3. 🎜>
4. Collecte synchrone
Statut du fil
Les threads ont cinq états : nouveau, prêt, en cours d'exécution, bloqué ou terminé.
Nouveau : créez un nouveau fil de discussion et le fil entre dans le nouvel état ;
Prêt : après avoir appelé la méthode start() du fil de discussion pour démarrer le fil, il entre dans l'état prêt ; >
Exécuter : lorsque vous obtenez du temps CPU, le thread passe à l'état d'exécution à partir de l'état prêt. Si la tranche de temps expire ou si la méthode rendement() est appelée, le thread à l'état d'exécution peut entrer dans l'état prêt ;Blocage : appelez la méthode join(), sleep() ou wait(), ou attendez la fin de l'E/S, le thread est dans un état bloqué
Complet : lorsque le thread se termine ; en exécutant la méthode run(), le thread se termine.
Création et utilisation de multi-threads
Diagramme de classes de Thread
1. Héritez de la classe Thread pour créer un nouveau fil
et réécrivez. méthode run()
PrintChar implémente l'interface Runnable et utilise Thread crée un thread. Puisque la classe Thread implémente l'interface Runnable, vous pouvez créer un objet de cette classe et appeler sa méthode start pour démarrer le thread
3. l'interface Executor Pour exécuter des tâches dans le pool de threads, l'interface ExecutorService est fournie pour gérer et contrôler les tâches.
Si une ressource partagée est accédée par plusieurs threads en même temps, elle peut être corrompue. Par exemple, si les champs de données sont modifiés dans des ordres différents, la valeur finale peut être incertaine. État de concurrence : si deux tâches ou plus accèdent à une ressource commune d'une manière qui provoque un conflit, cela s'appelle un état de concurrence. Pour éviter un état de concurrence, plusieurs threads doivent être évités. en même temps, entrez une partie spécifique du programme. Cette partie du programme est appelée section critique.
1. Utiliser la synchronisation des verrous
Java peut explicitement utiliser des verrous et des états pour synchroniser les threads. Un verrou est une instance de l'interface Lock, qui définit les méthodes de verrouillage et de libération des verrous.
RenntrantLock est une implémentation de Lock, utilisée pour créer des verrous mutuellement exclusifs. Des verrous peuvent être créés pour des politiques d’équité spécifiques. Une valeur de stratégie juste de 1 est vraie, garantissant que le thread avec le temps d'attente le plus long acquiert le verrou en premier. Si faux, il est donné à n'importe quel thread en attente.2. Collaboration avec les threads
Lorsque le thread appelle la méthode wait(), le thread entre dans l'état d'attente, en attendant le signal de réveil.
3. La file d'attente de blocage
peut bloquer le thread actuel. Si un thread prend des éléments d'une file d'attente de blocage vide, le fil sera bloqué jusqu'à ce qu'il y ait des éléments dans la file d'attente bloquée. être automatiquement réveillé, ce qui offre une grande commodité.
Plusieurs files d'attente de blocage :
1 : ArrayBlockingQueue utilise un tableau pour implémenter une file d'attente de blocage, et une capacité ou une stratégie d'équité facultative doit être spécifiée pour construire2 : LinkedBlockingQueue utilise une liste chaînée pour implémenter une file d'attente bloquante. Peut être créé de manière illimitée ou limitée.
3 : File d'attente prioritaire PriorityBlockQueue, trie les éléments en fonction de leur priorité. Champ de données ArrayBlockingQueueOn peut voir que l'espace de stockage est un tableau et qu'un verrou est utilisé .
Attendez lorsque la file d'attente est pleine et rejoignez la file d'attente lorsqu'elle n'est pas pleine. À ce moment, utilisez la synchronisation des verrous
Collections synchronisées
Les classes du framework Java Collections ne sont pas thread-safe, c'est-à-dire si elles sont accessibles par plusieurs threads en même temps ; en même temps et Mise à Jour, leur contenu peut être corrompu, vous pouvez protéger les données de la collection en verrouillant la collection ou en synchronisant la collectionImplémentation Java de PUT, POST, demande de suppression
Introduction détaillée à la programmation Java Résumé des problèmes courants
Graphique de la communication à distance Java analyse de la technologie et des principes Introduction
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Java est un langage de programmation populaire qui peut être appris aussi bien par les développeurs débutants que par les développeurs expérimentés. Ce didacticiel commence par les concepts de base et progresse vers des sujets avancés. Après avoir installé le kit de développement Java, vous pouvez vous entraîner à la programmation en créant un simple programme « Hello, World ! ». Une fois que vous avez compris le code, utilisez l'invite de commande pour compiler et exécuter le programme, et « Hello, World ! » s'affichera sur la console. L'apprentissage de Java commence votre parcours de programmation et, à mesure que votre maîtrise s'approfondit, vous pouvez créer des applications plus complexes.

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4
