¿Cuál es el principio básico de la sincronización?
Cuando se ejecuta monitorenter, si el objeto no está bloqueado, o el hilo actual ya posee el bloqueo del monitor del objeto, el contador de bloqueo es +1 y el hilo adquiere el bloqueo del objeto.
Cuando se ejecuta monitorexit, el contador de bloqueo es -1. Cuando el contador llega a 0, se libera el bloqueo del objeto. Luego, otros subprocesos bloqueados pueden solicitar adquirir el bloqueo del monitor.
Datos extendidos
Características de la sincronización
1. Atomicidad
La atomicidad se refiere a una operación o múltiples operaciones, o todas se ejecutan y las El proceso de ejecución no será interrumpido por ningún factor, o no se ejecutará en absoluto.
2. Visibilidad
Visibilidad significa que cuando varios subprocesos acceden a un recurso, la información de estado y valor del recurso es visible para otros subprocesos.
3. Perfectamente
El orden de ejecución del programa de valor ordenado es consistente con el orden del código.
4. Reentrada
Los bloqueos de sincronización y los bloqueos reentrantes son ambos bloqueos reentrantes. Cuando un subproceso intenta operar un recurso crítico de un bloqueo de objeto retenido por otro subproceso, estará en un estado de bloqueo, pero cuando un subproceso solicita nuevamente un recurso crítico de su propio bloqueo de objeto, esta situación es un bloqueo reentrante.