¿Qué es Lock Striping en Java Concurrency?

La creación de bandas de bloqueo es donde ocurre el bloqueo en unos pocos contenedores, franjas o cubos, lo que implica que llegar a un cubo solo bloquea la lata y no toda la estructura de datos. Esa es la idea del lock striping. Tener bloqueos separados para una parte de una estructura de información donde cada bloqueo se bloquea en una disposición medida variable de elementos autónomos. Tomemos un ejemplo de ConcurrentHashMap .

Ejemplo:

Por supuesto, ConcurrentHashMap en Java tiene 16 cubos y cada contenedor tiene su propio sistema de bloqueo. Entonces, las strings que llegan a las teclas en cubos discretos pueden llegar a ellas al mismo tiempo. Si desea imaginárselo, en ese momento, la siguiente imagen le dará una idea de cómo se verá el bloqueo de bandas para un ConcurrentHashMap.  

Aquí, dos strings deben llegar a las llaves en la lata 0 para que una de ellas pueda ingresar, nuevamente dos strings deben llegar a las llaves en la cuenca 1 para que una de ellas pueda ingresar. Lo mismo con el cubo n-3. De esta manera, con la eliminación de bloqueo de 6 strings, 3 strings pueden socavar la estructura de datos.

Para descubrir un depósito para el nuevo componente, dependemos del código hash de la clave. Y para incluir más cubos, debemos duplicar la tabla hash actual y hacer otra tabla con el estado y el doble del tamaño.

Características de Lock Striping:

  1. Ocurre solo en algunos baldes/contenedores.
  2. Ayuda a agregar dos o más elementos a diferentes contenedores.

Rol de Lock Striping en Java Concurrency :

  1. Maneja el acceso concurrente a los datos mientras tiene un buen rendimiento.
  2. Ayuda a los subprocesos para acceder a las claves en cubos/contenedores separados.

Desventaja de concurrencia de Java:

En el caso de Lock Striping en Java Concurrency , aplicar bloqueo y si necesita una colección para acceso exclusivo que con un solo bloqueo, será más difícil y costoso. 

Publicación traducida automáticamente

Artículo escrito por tarunsinghwap7 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *