Wytłuamczenie współbieżnosći - dlaczego raz metoda jest synchronizowana raz nie

0

Hej chciałem się spytać dlaczego przy takiej implementacji
screenshot-20171011131738.png

metoda lookUp musi być synchronizowana a już przy takiej implementacji nie:

screenshot-20171011131831.png

Tak jak do tej pory rozumiałem współbieżność to wydawało mi się że w obu sytuacjach lookUp powinien być synchronizowany bo współdzielący wątek może ją wywłaszczyć i zmienić mapkę, dokładnie jak w mutowalnej implmenetacji.
Mógłby to ktoś pomóc mi zrozumieć na chłopski rozum. Z góry dzięki

1

Róznica polega na tym, że w pierwszym przypadku jest to obiekt MutableHashMap a w drugim przypadku jest to ImmutableHashMap, więc przy MutableHashMap obiekt może się zmienić w trakcie wykonywania funkcji lookUp i możemy otrzymać inny wynik niż chcemy, a przy ImmutableHashMap mamy gwarancje nie zmienialności obiektu. To tak w skórcie.
https://www.mkyong.com/java/java-mutable-and-immutable-objects/

1 użytkowników online, w tym zalogowanych: 0, gości: 1