-
Cómo sincronizar bloques de código en Java
-
El lenguaje de programación Java permite a los programadores escribir código que se ejecutará en paralelo en diferentes hilos. Si el equipo tiene más de un núcleo de procesador, los hilos realmente va a ejecutar en paralelo; de lo contrario, el procesador puede multiplexar sobre todos los threads ejecutables. Cuando varios subprocesos operan en el mismo recurso compartido, el código resultante sólo puede ser correcta si sólo un hilo a la vez opera en ese recurso. métodos sincronizados están garantizados para conservar esta propiedad: en un momento dado, a lo sumo, se permite una instancia de un método sincronizado para utilizar el recurso.
Instrucciones
1 Declarar una clase separada que contendrá código sincronizado, como en el siguiente ejemplo de código:
SynchronizationExample clase pública () {
}
2 Declarar el recurso compartido como un miembro de la clase "privado", como en el siguiente ejemplo de código:
SynchronizationExample clase pública () {
int accountBalance privada = 0;
}
3 Declarar los métodos que operan en el recurso compartido mediante el uso de la palabra clave "sincronizado", como en el siguiente ejemplo de código:
SynchronizationExample clase pública () {
int accountBalance privada = 0;
pública de depósito vacío sincronizada (cantidad int) {
accountBalance = accountBalance + amount;
}
rectificación pública sincronizado void (int cantidad) {
accountBalance = accountBalance - amount;
}
}
Puesto que están sincronizados, los métodos de "depósito" y "retirada" no va a ejecutar en paralelo; Si uno tiene que empezar cuando el otro está ejecutando, tendrá que esperar hasta que el primero para iniciar la ultima. Esto hace que las modificaciones al recurso compartido "accountBalance" thread-safe.