2011-01-18 24 views
30

Me gustaría utilizar una lista vinculada como la descrita en el documento this. Sin embargo, no encontré ninguna implementación de Java en la web.Lista enlazada simultánea sin cerradura en Java

Si no existe una implementación java de la lista vinculada mencionada anteriormente, creo que usaría java.util.concurrent.ConcurrentLinkedQueue<E>. ¿Es esta una buena opción (no es realmente una lista enlazada)?

Si no es una buena opción, ¿alguien sabe de una implementación confiable de lista enlazada concurrente (thread-safe) libre de errores (sin bloqueo) en Java?

+0

No está bloqueado en ninguna forma (utiliza bloqueos para agregar/eliminar) - doh objetivo comentario ido ... (fue con respecto a LinkedBlockingDeque) – bestsss

+0

Bueno, la gran pregunta es, ¿por qué crees que ¿Quieres una lista concurrente de cualquier forma o forma? La mayoría de los métodos de lista no tienen sentido en una estructura compartida simultánea. ¿Por qué obtendrías el enésimo elemento? ¿Qué significa de todos modos obtener el enésimo elemento? Las cosas como el tamaño son efímeras y no tienen ningún valor además del monitoreo. ¿Puedes explicarme un poco más sobre cómo quieres usar esto? http://permalink.gmane.org/gmane.comp.java.jsr.166-concurrency/6321 –

+0

Quiero implementar un buffer único "físico", que es utilizado por n buffers "lógicos", donde cada buffer lógico es definido solo por sus elementos de inicio y final, st No tengo una representación redundante de mis datos en la memoria. – ptikobj

Respuesta

40

ConcurrentLinkedQueue es una magnífica cola sin bloqueo y hace lo que puede hacer una lista de enlaces individuales simultáneos. Una pequeña advertencia: si no usa encuesta o vistazo y solo iterator() (+ .remove()) perderá memoria.

Es un Queue excepcional.

+6

JDK 7 tiene un ConcurrentLinkedDeque –

+4

+1 Buena referencia para eliminar la pérdida de memoria –

+0

digamos, quiero el ConcurrentLinkedDeque, qué tan seguro es instalarlo la versión de vista previa jdk7 actual? – ptikobj

Cuestiones relacionadas