¿Qué significa la palabra clave synchronized en Java? Explica en términos simples con ejemplos
¡Hola, colegas! Soy nuevo en Java y no logro entender qué hace la palabra clave `synchronized`. Leí la documentación, pero parece demasiado complicada.
Tengo una clase simple `Counter` que incrementa un contador en varios threads. Espero que cada thread agregue 1000 al contador total, pero el resultado siempre es diferente: a veces 1987, a veces 2003, aunque debería ser exactamente 2000 (dos threads de 1000). Aquí está mi código:
```java
public class Counter {
private int count = 0;
public void increment() {
count++;
}
public int getCount() {
return count;
}
}
public class Main {
public static void main(String[] args) throws InterruptedException {
Counter counter = new Counter();
Thread t1 = new Thread(() -> {
for (int i = 0; i < 1000; i++) {
counter.increment();
}
});
Thread t2 = new Thread(() -> {
for (int i = 0; i < 1000; i++) {
counte
No answers yet.
Inicia sesión para dejar una respuesta