Modificador synchronized en Java

Hola a todos, hoy os voy a explicar como se utiliza el modificador synchronized y como funciona en Java.

El modificador synchronized en Java nos permite que un hilo entre de forma sincronizada en un método/función, ¿qué significa exactamente? Quiere decir que cuando un hilo o proceso ejecute ese método/función, ningún otro podrá acceder hasta que el primero acabe.

La utilidad de que un método/función se utiliza para controlar el acceso de multiples hilos a un recurso compartido.

Veamos un ejemplo práctico para ver su funcionamiento.

Lo primero, vamos a crear una clase llamado Counter que tendrá dos métodos, uno con el modificador synchronized y otro sin este. El método en sí lo que hará es mostrar de 0 a n.

Le pondremos un atributo sincronizado para llamar a un método u otro según queramos.

Ahora, crearemos una clase HiloContador que herede de Thread. Tendrá como atributos un id para identificar el hilo, un numero que indica hasta dónde debe mostrar por pantalla y una instancia de la clase Counter.

En la clase Principal, vamos a crear nuestros hilos y ejecutarlos.

Vamos a ejecutarlo de las dos formas.

  • No sincronizado:

  • Sincronizado:

¿Ves la diferencia? En el primer caso ambos empiezan a la vez, es decir, entran en el método a la vez. En el segundo caso, cuando uno entra el otro espera hasta que el otro termine, por lo que no se solapan.

Te dejo un video donde explico todo el proceso.

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Warning: Trying to access array offset on value of type null in /home2/discodur/public_html/discoduroderoer/wp-content/themes/disto/single.php on line 539