¿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++) {
No answers yet.
Inicia sesión para dejar una respuesta