Я смотрю на какой-то унаследованный код, который имеет следующую идиому:
Map<String, Boolean> myMap = someGlobalInstance.getMap();
synchronized (myMap) {
item = myMap.get(myKey);
}
Предупреждение, которое я получаю от проверки кода Intelli-J:
Synchronization on local variable 'myMap'
Является ли это подходящей синхронизацией и почему?
Map<String, Boolean> myMap = someGlobalInstance.getMap();
synchronized (someGlobalInstance.getMap()) {
item = myMap.get(myKey);
}