Приведение синхронизировано по возвращаемому объекту коллекции - PullRequest
0 голосов
/ 04 декабря 2018

Я изучаю многопоточность и у меня возникают проблемы с пониманием синхронизации при работе с LinkedHashMap, особенно в том, что касается моего кода, что блокируется.Является ли объект, извлеченный из proxyAutoMap, заблокированным или весь экземпляр proxyAutoMap заблокирован?

Примечание: AutoMap - это просто LinkedHashMap хеш-карта для хранения объектов

Ниже приведен код для справки:

public abstract class ProxyAutomobile {
    protected static AutoMap<Automobile> proxyAutoMap = new AutoMap<Automobile>();

    public void printAuto(String key) {
        try {
            synchronized (proxyAutoMap.getAuto(key)) {
                proxyAutoMap.getAuto(key).print();
            }
        } catch (AutoException ae ) {
            ae.fix(ae.getErrorID());
        }
    }
}
...