Avatar ·

¿Cuál es la diferencia entre los métodos wait() y sleep() en Java? Ejemplos con código

¡Hola a todos! Empecé a estudiar multithreading en Java y me confundí con los métodos wait() y sleep(). Parece que ambos suspenden la ejecución del thread, pero se comportan de manera diferente. Ayúdenme a entender. Tengo un ejemplo simple. Creo dos threads: uno produce datos, el otro los consume. Uso sleep() para sincronizar: ```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("Producido: " + i); try { Thread.sleep(100); // Esperamos a que el consumidor recoja } 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++) {