English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

java synchronized carga de bloqueo-Explicación detallada de threads reentrantes y ejemplos de código

java synchronized carga de bloqueo-Notas de experiencia

Texto principal

Bloqueo reentrante
  Código de ejemplo:
  public class ReGetLock implements Runnable {
    @Override
  ReGetLock rgl = new ReGetLock();
  public void run() {
    set();
    get();
  ReGetLock rgl = new ReGetLock();
  public synchronized void get() {
    set();
  ReGetLock rgl = new ReGetLock();
  public synchronized void set() {
    System.out.println(Thread.currentThread().getId());
    public static void main(String[] args) {
  ReGetLock rgl = new ReGetLock();
ReGetLock rgl = new ReGetLock();

new Thread(rgl).start();63¿Puede realmente el hilo que ejecuta el código entrar en el método set?

}63¿Puede realmente el hilo que ejecuta el código entrar en el método set?

Porque el hilo rgl llamó primero al método get, obteniendo el bloqueo del objeto ReGetLock, entonces cuando el hilo rgl quiera entrar en el método marcado con la palabra clave synchronized, será bloqueado y tendrá que esperar ¿no?;

En realidad, no es así, en JAVA,

Gracias por leer, espero que pueda ayudar a todos, ¡gracias por el apoyo a este sitio!

Te gustará