Maison Java javaDidacticiel Compréhension approfondie de wait and notify en Java : analyse du mécanisme de synchronisation des threads

Compréhension approfondie de wait and notify en Java : analyse du mécanisme de synchronisation des threads

Dec 20, 2023 am 08:44 AM
线程 同步 通知 等待

Compréhension approfondie de wait and notify en Java : analyse du mécanisme de synchronisation des threads

Synchronisation des threads en Java : analyse des principes de fonctionnement des méthodes d'attente et de notification

Dans la programmation multithread Java, la synchronisation entre les threads est un concept très important. Dans le développement réel, nous devons souvent contrôler la séquence d'exécution et l'accès aux ressources entre plusieurs threads. Afin de réaliser la synchronisation des threads, Java fournit des méthodes d'attente et de notification.

Les méthodes wait et notify sont deux méthodes de la classe Object. Elles utilisent le mécanisme de surveillance en Java pour assurer la coordination et la communication entre les threads. Lorsqu'un thread attend une certaine condition, il peut appeler la méthode d'attente de l'objet, et le thread entrera dans l'état d'attente et libérera le verrou de l'objet. Lorsque d'autres threads modifient l'état de l'objet, la méthode notify de l'objet peut être appelée pour avertir le thread en attente, lui permettant ainsi de concourir à nouveau pour le verrou et de poursuivre l'exécution. Les principaux principes de fonctionnement des méthodes

wait et notify sont les suivants : La fonction de la méthode

  1. wait est de mettre le thread actuel dans un état d'attente jusqu'à ce qu'une certaine condition soit remplie. Avant d'appeler la méthode wait, le thread doit d'abord acquérir le verrou de l'objet. S'il n'est pas acquis, une IllegalMonitorStateException sera levée. Une fois que le thread entre dans l'état d'attente, il libère le verrou de l'objet et entre dans la file d'attente. Le thread en attente ne peut être réveillé que lorsque d'autres threads appellent la méthode notify ou la méthode notifyAll de l'objet correspondant. La fonction de la méthode
  2. notify est de réveiller un thread dans la file d'attente afin qu'il puisse se rejouer pour acquérir le verrou et poursuivre l'exécution. S'il y a plusieurs threads dans la file d'attente, le thread qui est réveillé n'est pas défini et dépend de la politique de planification du système d'exploitation. Il convient de noter que la méthode notify ne réveillera qu'un seul thread, tandis que la méthode notifyAll réveillera tous les threads en attente.

Un exemple de code est donné ci-dessous pour démontrer l'utilisation des méthodes wait et notify :

public class WaitNotifyDemo {
    private static final Object lock = new Object();
    private static boolean flag = false;

    public static void main(String[] args) {
        Thread waitThread = new Thread(new WaitTask());
        Thread notifyThread = new Thread(new NotifyTask());

        waitThread.start();

        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        notifyThread.start();
    }

    static class WaitTask implements Runnable {
        @Override
        public void run() {
            synchronized (lock) {
                while (!flag) {
                    try {
                        System.out.println("等待线程进入等待状态");
                        lock.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                System.out.println("等待线程被唤醒,继续执行");
            }
        }
    }

    static class NotifyTask implements Runnable {
        @Override
        public void run() {
            synchronized (lock) {
                System.out.println("通知线程唤醒等待线程");
                lock.notify();
                flag = true;
            }
        }
    }
}
Copier après la connexion

Dans l'exemple ci-dessus, waitThread commence à s'exécuter en premier, et lorsqu'il essaie d'entrer dans le bloc synchronisé, puisque la valeur initiale de flag est false , la méthode wait sera appelée pour entrer dans l'état d'attente. Ensuite, notifyThread démarre et se met en veille pendant 2 secondes. Après cela, il acquiert le verrou, définit la valeur de flag sur true et appelle la méthode notify pour réveiller le thread en attente. Finalement, waitThread est réveillé et l'exécution continue à partir de l'endroit après la méthode wait.

Avec cet exemple, nous pouvons mieux comprendre comment fonctionnent les méthodes d'attente et de notification. Ce sont des outils importants pour la synchronisation et la communication entre les threads, résolvant efficacement les problèmes de concurrence et d’accès aux ressources entre les threads. Dans les applications pratiques, une utilisation raisonnable des méthodes d'attente et de notification peut garantir une collaboration fluide entre plusieurs threads.

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

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)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Résolvez le problème de la lecture simultanée d'écouteurs et de haut-parleurs dans Win11 Résolvez le problème de la lecture simultanée d'écouteurs et de haut-parleurs dans Win11 Jan 06, 2024 am 08:50 AM

De manière générale, nous n'avons besoin d'utiliser qu'un seul casque ou haut-parleur en même temps. Cependant, certains amis ont signalé que dans le système Win11, ils ont rencontré le problème du son des écouteurs et des haut-parleurs en même temps. désactivez-le dans le panneau Realtek et tout ira bien, jetons un œil ci-dessous. Que dois-je faire si mes écouteurs et mes haut-parleurs sonnent ensemble dans Win11 ? 1. Recherchez et ouvrez d'abord le "Panneau de configuration" sur le bureau 2. Accédez au panneau de configuration, recherchez et ouvrez "Matériel et son" 3. Recherchez ensuite le ". Realtek High Definition" avec une icône de haut-parleur. Audio Manager" 4. Sélectionnez "Haut-parleurs" et cliquez sur "Panneau arrière" pour entrer les paramètres des haut-parleurs. 5. Après ouverture, nous pouvons voir le type d'appareil. Si vous souhaitez éteindre les écouteurs, décochez « Écouteurs ».

Un ou plusieurs éléments du dossier que vous avez synchronisé ne correspondent pas à l'erreur Outlook Un ou plusieurs éléments du dossier que vous avez synchronisé ne correspondent pas à l'erreur Outlook Mar 18, 2024 am 09:46 AM

Lorsque vous constatez qu'un ou plusieurs éléments de votre dossier de synchronisation ne correspondent pas au message d'erreur dans Outlook, cela peut être dû au fait que vous avez mis à jour ou annulé des éléments de réunion. Dans ce cas, vous verrez un message d'erreur indiquant que votre version locale des données est en conflit avec la copie distante. Cette situation se produit généralement dans l'application de bureau Outlook. Un ou plusieurs éléments du dossier que vous avez synchronisé ne correspondent pas. Pour résoudre le conflit, ouvrez les projets et retentez l'opération. Réparer Un ou plusieurs éléments dans les dossiers synchronisés ne correspondent pas à l'erreur Outlook Dans la version de bureau d'Outlook, vous pouvez rencontrer des problèmes lorsque des éléments du calendrier local entrent en conflit avec la copie du serveur. Heureusement, il existe des moyens simples d’aider

Comment effacer les notifications sur iPhone Comment effacer les notifications sur iPhone Feb 15, 2024 pm 06:10 PM

Bien que les notifications ne soient pas la suite la plus puissante sur iPhone, dans les récentes mises à jour iOS, Apple a affiné leur apparence. La nouvelle version iOS minimise la visibilité des alertes via le Centre de notifications pour garantir aux utilisateurs une meilleure expérience. Dans cet article, nous vous aiderons à effacer les notifications sur iPhone de différentes manières. Comment désactiver les bannières de notifications entrantes sur iPhone Lorsque vous êtes sur l'écran d'accueil ou que vous utilisez activement une application, toutes les notifications apparaissent sous forme de bannières en haut, sauf si vous désactivez cette fonctionnalité. Si vous souhaitez consulter la notification plus tard sans interrompre votre tâche en cours, faites simplement glisser la bannière vers le haut pour la rejeter. Cela déplacera les notifications que vous recevez vers le Centre de notifications afin que vous puissiez

PHP envoie des emails de manière asynchrone : évitez les longues attentes pour l'envoi des emails. PHP envoie des emails de manière asynchrone : évitez les longues attentes pour l'envoi des emails. Sep 19, 2023 am 09:10 AM

PHP envoie des emails de manière asynchrone : évitez les longues attentes pour l'envoi des emails. Introduction : Dans le développement Web, l'envoi d'e-mails est l'une des fonctions courantes. Cependant, comme l’envoi d’e-mails nécessite une communication avec le serveur, cela oblige souvent les utilisateurs à attendre longtemps avant que l’e-mail soit envoyé. Afin de résoudre ce problème, nous pouvons utiliser PHP pour envoyer des e-mails de manière asynchrone afin d'optimiser l'expérience utilisateur. Cet article présentera comment implémenter PHP pour envoyer des e-mails de manière asynchrone à travers des exemples de code spécifiques et éviter de longues attentes. 1. Comprendre l'envoi d'e-mails de manière asynchrone

Guide de l'utilisateur de Windows 11 : Comment désactiver les fenêtres contextuelles publicitaires Guide de l'utilisateur de Windows 11 : Comment désactiver les fenêtres contextuelles publicitaires Sep 22, 2023 pm 07:21 PM

Le système d'exploitation Windows 11 de Microsoft peut afficher périodiquement des suggestions sous forme de fenêtres contextuelles sur votre ordinateur à l'aide du système de notification. Le système de suggestions, initialement conçu pour fournir aux utilisateurs des conseils et des suggestions pour améliorer leurs flux de travail Windows 11, s'est presque entièrement transformé en un système publicitaire visant à promouvoir les services et produits Microsoft. Les fenêtres contextuelles de suggestion peuvent annoncer un abonnement Microsoft 365 aux utilisateurs, suggérer de lier un téléphone Android à l'appareil ou configurer une solution de sauvegarde. Si ces fenêtres contextuelles vous ennuient, vous pouvez modifier votre système pour les désactiver complètement. Le guide suivant fournit des recommandations sur la désactivation des fenêtres contextuelles sur les appareils exécutant le système d'exploitation Windows 11 de Microsoft.

Comment désactiver les rappels du clavier Apple TV sur iPhone Comment désactiver les rappels du clavier Apple TV sur iPhone Nov 30, 2023 pm 11:41 PM

Sur AppleTV, si vous ne souhaitez pas utiliser AppleTV Remote pour saisir du texte, vous pouvez taper à l'aide d'un iPhone ou d'un iPad à proximité. Chaque fois qu'un champ de texte apparaît sur AppleTV, une notification apparaît sur votre iPhone ou iPad. Après avoir appuyé sur la notification, vous pouvez utiliser le clavier à l'écran de votre appareil iOS pour saisir du texte sur AppleTV. Si vous trouvez ces notifications ennuyeuses, vous pouvez les désactiver sur votre iPhone ou iPad (si vous avez quelques AppleTV et des enfants à la maison, vous comprendrez ce que nous voulons dire). Si vous utilisez iOS/iPadOS 15.1 ou une version ultérieure, voici comment les désactiver. Lancement sur iPhone ou iPad

Comment convertir votre site Web en une application Mac autonome Comment convertir votre site Web en une application Mac autonome Oct 12, 2023 pm 11:17 PM

Dans macOS Sonoma et Safari 17, vous pouvez transformer des sites Web en « applications Web », qui peuvent être placées dans le dock de votre Mac et accessibles comme n'importe quelle autre application sans ouvrir de navigateur. Lisez la suite pour savoir comment cela fonctionne. Grâce à une nouvelle option du navigateur Safari d'Apple, il est désormais possible de transformer n'importe quel site Web sur Internet que vous visitez fréquemment en une « application Web » autonome qui se trouve dans le dock de votre Mac et est accessible à tout moment. L'application Web fonctionne avec Mission Control et Stage Manager comme n'importe quelle application et peut également être ouverte via Launchpad ou SpotlightSearch. Comment transformer n'importe quel site Web en

Apprenez à synchroniser le presse-papiers Win10 avec votre téléphone mobile Apprenez à synchroniser le presse-papiers Win10 avec votre téléphone mobile Jan 06, 2024 am 09:18 AM

Une fonction très utile du presse-papiers Win10 est la fonction de stockage cloud multi-appareils, qui est très utile et peut aider les utilisateurs à copier et coller simultanément sur des appareils PC et des appareils mobiles. La méthode de configuration est très simple, il suffit de la définir dans le presse-papiers du système. Synchroniser le presse-papiers Win10 avec le téléphone mobile 1. Cliquez d'abord sur Démarrer dans le coin inférieur gauche pour entrer les paramètres. 2. Cliquez ensuite sur « Système ». 3. Sélectionnez « Presse-papiers » sur la gauche. 4. Enfin, cliquez sur Connexion dans « Synchronisation multi-appareils » à droite, puis sélectionnez votre téléphone mobile.

See all articles