Les méthodes wait(), notify() et notifyAll() font partie intégrante du modèle de concurrence de Java. Ils appartiennent à la classe Object, qui est la racine de la hiérarchie des classes en Java. Cela signifie que chaque classe Java hérite de ces méthodes de la classe Object.
La classe Object est la superclasse de toutes les classes en Java. Il fournit un ensemble de méthodes de base dont chaque classe hérite, notamment toString(), equals() et hashCode(). Les méthodes wait(), notify() et notifyAll() font également partie de cette classe, permettant aux threads de communiquer et de coordonner leurs activités.
Pour comprendre le fonctionnement de ces méthodes, regardons quelques exemples pratiques.
Voici un exemple simple illustrant l’utilisation de ces méthodes :
class SharedResource { private boolean available = false; public synchronized void consume() throws InterruptedException { while (!available) { wait(); // Wait until the resource is available } // Consume the resource System.out.println("Resource consumed."); available = false; notify(); // Notify that the resource is now unavailable } public synchronized void produce() { // Produce the resource available = true; System.out.println("Resource produced."); notify(); // Notify that the resource is available } } public class Main { public static void main(String[] args) { SharedResource resource = new SharedResource(); Thread producer = new Thread(() -> { try { while (true) { Thread.sleep(1000); // Simulate time to produce resource.produce(); } } catch (InterruptedException e) { e.printStackTrace(); } }); Thread consumer = new Thread(() -> { try { while (true) { resource.consume(); Thread.sleep(2000); // Simulate time to consume } } catch (InterruptedException e) { e.printStackTrace(); } }); producer.start(); consumer.start(); } }
Dans l'exemple ci-dessus :
Vous verrez le résultat suivant indiquant les opérations du producteur et du consommateur :
Resource produced. Resource consumed. ...
Ce résultat montre comment wait(), notify() et notifyAll() coordonnent l'interaction producteur-consommateur.
En comprenant à quelle classe appartiennent les méthodes wait(), notify() et notifyAll() et comment elles fonctionnent, vous pouvez gérer efficacement communication inter-thread dans vos applications Java. Ces méthodes sont essentielles pour garantir que les threads coopèrent et partagent efficacement les ressources.
Si vous avez des questions ou avez besoin de précisions supplémentaires, n'hésitez pas à laisser un commentaire ci-dessous !
Lisez les articles plus sur : À quelle classe appartiennent les méthodes wait(), notify() et notifyAll() ?
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!