en el punto 67 de Effective Java por Josh Bloch, mencionó que si un método modifica un campo estático, debe sincronizar el acceso a este campo, ya que no es posible para los clientes para llevar a cabo la sincronización externa sobre tales un método. No entiendo por qué un cliente no puede realizar la sincronización externa en un método estático.sincronizar el acceso a un campo estático
aplicación de sincronización interna:
public class Serial {
private static int serialNumber = 0;
public synchronized static void incSerial() {
serialNumber++;
}
}
si no hay sincronización interna implementada, un cliente puede sincronizar externamente:
synchronize(Serial.class) {
Serial.incSerial();
}
alguna idea?
Por cierto, puede proporcionar un presupuesto exacto, y háganos saber la página que está escrito. Esperaría que Bloch fuera claro y correcto – Bozho