/ / Czy synchronizacja Java działa z metodami o różnych nazwach? - java, synchronizacja

Czy synchronizacja java działa z metodami o różnych nazwach? - Java, synchronizacja

class public Test
{
private int counter;

public synchronized change()
{
counter++;
}

public change2()
{
synchronized(this){
counter--;
}
}

}

Czy możemy wywoływać zmiany i zmiany2 jednocześnie?

Odpowiedzi:

3 dla odpowiedzi № 1

Nazwy nie mają z tym nic wspólnego. Co to jest zablokowany jest obiektem (nie zmienną, nie referencją).

Jeśli wątek zaczął wykonywać blok, którysynchronizuje na obiekcie, każdy inny wątek, który próbuje synchronizować na tym samym obiekcie, zostanie zablokowany i zaczeka, aż ten oryginalny wątek zakończy wykonywanie swojego bloku.