Java 修改列表的非阻塞算法<;V>;在爪哇

Java 修改列表的非阻塞算法<;V>;在爪哇,java,atomic,nonblocking,lock-free,compare-and-swap,Java,Atomic,Nonblocking,Lock Free,Compare And Swap,该用例要求我在检索值或将值放入列表时不阻塞任何线程。我一直在考虑要求您自己实现数据结构的问题。我希望使用现有的集合实现,例如ArrayList或LinkedList,并实现元素的无锁插入和查找。有一个选项可以使用原子引用阵列。但是我想知道是否有一种方法可以为可变大小的列表实现这一点。有一种方法是无锁的。如果您想获得列表的全部功能,则需要查看外部库。List sinchronizedList=Collections.sinchronizedList(yourList)@bigdestroyer:O

该用例要求我在检索值或将值放入
列表时不阻塞任何线程。我一直在考虑要求您自己实现数据结构的问题。我希望使用现有的集合实现,例如
ArrayList
LinkedList
,并实现元素的无锁插入和查找。有一个选项可以使用
原子引用阵列
。但是我想知道是否有一种方法可以为可变大小的列表实现这一点。

有一种方法是无锁的。如果您想获得
列表的全部功能,则需要查看外部库。List sinchronizedList=Collections.sinchronizedList(yourList)@bigdestroyer:OP希望避免同步数据结构。Synchronized不是无锁的。@bigdestroyer:不,无锁意味着没有锁。这些算法可以并行运行,并最终执行比较和交换,这是一种基于硬件的原子指令,以减少开销。@Zhedar:请参阅。