Bloqueo de todas las instancias de una clase en Java

Como se indicó en un comentario, bloquear un objeto de clase no bloqueará todas las instancias de esa clase, solo bloqueará el objeto de Clase que representa la clase de su Cuenta. Ese bloqueo no es incompatible con los bloqueos en los objetos de la cuenta, por lo que no tiene sincronización en absoluto.

Se pueden realizar bloqueos en objetos individuales de la cuenta dentro de su ciclo for (en sumAccounts) pero no evitará que ocurran cronogramas como este:

- sumAccounts locks 'first' Account and reads balance (and releases lock again at end of the synchronized block taking the lock)
- system schedules a moneyTransfer() from 'first' to 'last'
- sumAccounts locks 'last' Account and reads balance, which includes the amount that was just transferred from 'first' and was already included in the sum

Por lo tanto, si también desea evitar eso, debe sincronizar el procesamiento de moneyTransfer () en Account.class también (lo que luego elimina la necesidad de bloquear los objetos individuales).

Respuesta 1

¿Cómo asignar la siguiente estructura de "unión etiquetada" a JNA? Esta estructura es utilizada por libvterm (enlace al código fuente). / ** * Unión etiquetada que almacena un color RGB o un índice en una paleta de colores * / ...

¿Cómo puedo leer la primera subcadena que coincide con mi patrón? He intentado con while (m.find ()) {URL = (m.group (1)); } Con 1 en la llamada grupal, la aplicación se bloquea, y si yo ...

Estoy creando esta aplicación, tiene varios componentes (osciladores, efectos) para dibujar una forma de onda visual. Utiliza controles en la GUI para cambiar los parámetros del componente. Cuando interactúas con uno ...

Tengo KafkaProducer, he configurado el serializador de clave y valor como se muestra a continuación: props.put ("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); props.put ("value.serializer" ...