Avatar ·

Quelle est la différence entre les méthodes wait() et sleep() en Java ? Exemples avec code

Bonjour à tous ! J'ai commencé à étudier le multithreading en Java et je me suis embrouillé avec les méthodes wait() et sleep(). Apparemment, les deux suspendent l'exécution d'un thread, mais se comportent différemment. Aidez-moi à comprendre. J'ai un exemple simple. Je crée deux threads : l'un produit des données, l'autre les consomme. J'utilise sleep() pour la synchronisation : ```java class Producer extends Thread { private List buffer = new ArrayList<>(); public void run() { for (int i = 0; i < 10; i++) { buffer.add(i); System.out.println("Produit : " + i); try { Thread.sleep(100); // Attend que le consommateur prenne } catch (InterruptedException e) {} } } public int getValue() { return buffer.remove(0); } } class Consumer extends Thread { private Producer producer; Consumer(Producer p) { producer = p; } public void run() { for (int i = 0; i < 10; i++) {