Sincronización, ¿Cuándo o no usar?
He comenzado a aprender la concurrencia y los hilos en Java. Conozco los conceptos básicos de la sincronización (es decir, lo que hace). Conceptualmente entiendo que proporciona acceso mutuamente exclusivo a un recurso compartido con múltiples subprocesos en Java. Pero cuando me enfrento a un ejemplo como el que aparece a continuación, estoy confundido acerca de si es una buena idea sincronizarlo. Sé que las secciones críticas del código deben estar sincronizadas y esta palabra clave no debe utilizarse en exceso o afecta el rendimiento.
<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>