Я начал изучать совместимость и потоки в Java. Я знаю основы синхронизированного (то есть, что он делает). Концептуально я понимаю, что он обеспечивает взаимный эксклюзивный доступ к общему ресурсу с несколькими потоками в Java. Но когда вы сталкиваетесь с примером, как показано ниже, я смущен, это хорошая идея, чтобы он синхронизировался. Я знаю, что критические разделы кода должны быть синхронизированы, и это ключевое слово не должно чрезмерно использоваться или оно влияет на производительность.
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
}