Maison  >  Article  >  Java  >  Qu’est-ce que le blocage des threads Java ?

Qu’est-ce que le blocage des threads Java ?

王林
王林avant
2023-04-27 13:52:071148parcourir

1. Explication

Le verrouillage des threads signifie que le thread en attente n'a pas pu terminer sa tâche car les conditions requises pour le réveiller n'ont jamais pu être établies, ou d'autres threads ne peuvent pas réveiller ce thread et ont été dans un état non-actif. état d'exécution (le thread n'est pas terminé).

2. Il existe deux types de verrous de thread :

(1) Verrouillage par perte de signal : le verrouillage par perte de signal est dû au fait qu'il n'y a pas de thread de notification correspondant pour réveiller le thread en attente, ce qui fait que le thread en attente reste en attente. État.

Un exemple typique est que le thread en attente ne juge pas la condition de protection avant d'exécuter Object.wait()/Condition.await(). À ce stade, la condition de protection peut en fait avoir été établie et aucun autre thread ne peut la mettre à jour. condition de protection correspondante après cela. La variable partagée est établie et notifiée au thread en attente, ce qui maintient le thread en attente dans un état d'attente, rendant sa tâche incapable de progresser.

(2) Verrouillage du moniteur imbriqué : le verrouillage du moniteur imbriqué est une erreur dans laquelle le thread en attente ne peut jamais être réveillé en raison de verrous imbriqués.

Par exemple, un thread libère uniquement le verrou interne Y.wait(), mais ne libère pas le verrou externe X, mais le thread de notification doit d'abord obtenir le verrou externe X avant de pouvoir réveiller le thread en attente via Y.notifyAll ; (). Cela conduit au phénomène d’attentes imbriquées.

Quels sont les types de données de base de Java ?

Les types de données de base de Java sont divisés en :

1 Type entier, utilisé pour représenter le type de données des entiers.

2. Type à virgule flottante, un type de données utilisé pour représenter les décimales.

3. Type de caractère Le mot-clé du type de caractère est "char".

4. Le type booléen est le type de données de base qui représente les valeurs logiques.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer