Estoy buscando una forma eficiente de implementar una estructura de árbol simultánea. Si eso ayuda, suponga que tengo muchos más accesos de lectura que cambios en la estructura.Árbol concurrente eficiente
El árbol debe apoyar estas operaciones:
- Adición y eliminación de nodos
- Ordenar ramas cada vez que se inserta un nuevo nodo
- iterar sobre todos los nodos (sin ConcurrentModificationException)
- Busque un elemento por ruta
Esto es interesante pero inútil en mi caso de uso. Mis árboles son árboles reales (estructuras padre-hijo), no mapas de valores clave. –
Evitaría usar palabras como "inútil". Esta respuesta fue contribuida para ayudarlo voluntariamente. Si está buscando árboles concurrentes de lectura en su mayoría, los algoritmos de bloqueo pueden ser una buena forma de hacerlo. Es posible que un árbol Radix no sea exactamente lo que estás buscando, pero como mencioné, el enfoque de aplicación de parches atómicos al que me he vinculado se puede aplicar a cualquier tipo de árbol para lecturas sin bloqueos, incluso si estás planeando escribir tu propio diseño personalizado árbol. Incidentalmente, los árboles radix son obviamente árboles, que tienen estructuras padre-hijo. – npgall
+1 Mejoré la redacción para que tu intención sea más clara. –