Синхронизация, когда использовать или не использовать?

Я начал изучать параллелизм и потоки в Java. Я знаю основы синхронизированных (то есть что он делает). Концептуально я понимаю, что он обеспечивает взаимоисключающий доступ к общему ресурсу с несколькими потоками в Java. Но когда я сталкиваюсь с примером, подобным приведенному ниже, я не могу понять, стоит ли синхронизировать его. Я знаю, что критические разделы кода должны быть синхронизированы, и это ключевое слово не должно использоваться чрезмерно, или это влияет на производительность.

<code>public static synchronized List<AClass> sortA(AClass[] aArray) 
{
    List<AClass> aObj = getList(aArray);

    Collections.sort(aObj, new AComparator());

    return aObj;
}

public static synchronized List<AClass> getList(AClass[] anArray) 
{
    //It converts an array to a list and returns
}
</code>

Ответы на вопрос(5)

Ваш ответ на вопрос