Java - Будет ли синхронизироваться в функциональном блоке доступ к свойствам экземпляра? - PullRequest
0 голосов
/ 13 марта 2020

если у меня есть

class A {
    public int a;
    public synchronized void myMethod() {
       Thread.sleep(1000) 
    }
}

Если поток запущен, свойство myMethod будет a заблокировано для доступа и изменения для других потоков в этом экземпляре A?

1 Ответ

1 голос
/ 13 марта 2020

Чтобы ответить на ваш вопрос кратко: нет, он не будет блокировать другие потоки от доступа / изменения свойств.

Подробный ответ: synchronized является ключевой частью механизма потоков Java. Это то, как потоки ждут друг друга. Вы также должны увидеть Object.wait и Object.notify / .notifyAll. Синхронизация - это контроль выполнения потоков, а не утечка данных.

...