Синхронизация, когда использовать или не использовать?
Я начал изучать параллелизм и потоки в 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>