Red de conocimiento de abogados - Derecho de sociedades - ¿Qué son los bloqueos en Java y cuáles son las diferencias?

¿Qué son los bloqueos en Java y cuáles son las diferencias?

1 Oficios justos y no justos.

Bloqueo justo: se refiere a la adquisición de bloqueos en el orden en que se solicitan los bloqueos.

Bloqueo injusto: el orden en que los hilos adquieren bloqueos no necesariamente sigue el orden en que se obtienen los bloqueos. se solicitan.

//El valor predeterminado es un bloqueo injusto, pasar verdadero es un bloqueo justo; de lo contrario, es un bloqueo injusto

ReentrantLock reentrantLock = new ReetrantLock();

1

2

2*** Cerraduras compartidas y cerraduras exclusivas

Cerraduras exclusivas: solo puede acceder un hilo a la vez

***Bloqueo compartido: los subprocesos pueden ser retenidos por varios subprocesos.

El bloqueo de lectura ReadWriteLock es un bloqueo compartido, el bloqueo de escritura es un bloqueo exclusivo.

3 Bloqueo optimista y bloqueo pesimista.

Bloqueo optimista: para operaciones simultáneas en un dato, no se producirá ninguna modificación. Al actualizar los datos, intentará actualizarlos actualizándolos y reingresándolos continuamente.

Bloqueo pesimista: las operaciones concurrentes sobre los mismos datos definitivamente se modificarán. Por lo tanto, para operaciones concurrentes sobre los mismos datos, el bloqueo pesimista adopta la forma de bloqueo. El bloqueo pesimista cree que las operaciones sin bloqueo definitivamente causarán problemas,

4 bloqueos segmentados

1.7 y el mapa de hash concurrente anterior. Las operaciones concurrentes son bloqueos segmentados y la idea es reducir la granularidad del bloqueo.

5 El bloqueo sesgado significa que un hilo ha accedido a un fragmento de código de sincronización, luego el hilo adquirirá automáticamente el bloqueo. Reduce el coste de adquisición de cerraduras

Cerradura ligera

Cerradura pesada

Cerradura de 6 giros

Cerradura de giro