Maison > Java > javaDidacticiel > Quelles sont les situations qui provoquent un blocage en Java ?

Quelles sont les situations qui provoquent un blocage en Java ?

WBOY
Libérer: 2023-05-19 12:46:06
avant
1202 Les gens l'ont consulté

4 Threads T1 et T2, T1 a obtenu 10 Mo de mémoire, T2 a obtenu 15 Mo de mémoire, T1 et T2 ont tous deux besoin d'obtenir 30 Mo de mémoire pour fonctionner, mais la mémoire disponible restante est de 10 Mo, donc les deux threads s'attendent pour libérer des ressources mémoire 3. Échange de données par questions et réponses : le serveur ouvre un certain port et attend que le client y accède. Une fois que le client a envoyé la demande, le serveur manque la demande du client pour une raison quelconque, ce qui entraîne le client. attendre que le serveur réponde, pendant que le serveur attend le client. Envoyer des requêtes

4. Deadlock causé par une boucle infinie : Vous ne pouvez pas voir le blocage en utilisant des outils tels que jstack, mais le programme ne fonctionne pas. et l'occupation du processeur est élevée. Ce type de blocage est également appelé animation suspendue du système, ce qui est difficile à dépanner et à redémarrer maintenant

Instance

public class Main {
    private final Object MUTEX_READ = new Object();
    private final Object MUTEX_WRITE = new Object();
 
    public void read(){
        synchronized (MUTEX_READ){
            synchronized (MUTEX_WRITE){
            }
        }
    }
 
    public void write(){
        synchronized (MUTEX_WRITE){
            synchronized (MUTEX_READ){
            }
        }
    }
 
    public static void main(String[] args) throws InterruptedException {
        Main m = new Main();
        new Thread(()->{
            while (true){
                m.read();
            }
        }).start();
        new Thread(()->{
            while (true){
                m.write();
            }
        }).start();
    }
}
Copier après la connexion
.

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal