源码角度了解ConcurrentSkipListMap
ConcurrentSkipListMap的key是有序的,它是基于跳查表来进行实现的map,跳查表可以实现无锁的链表,我们知道链表的操作插入元素的时候直接修改前一个位置的节点,指向这个节点,然后这个节点又指向下一个节点,删除元素的时候直接修改前一个位置的节点指向删除节点的下一个节点,当插入和删除并发执行的时候,可能出现问题,把插入的节点删除。如图,插入8 ,删除3这个操作同时进行的话,插入8操作的是3的后继节点,删除3操作的是3的前驱节点,这个操作互相感知不到,这样会出现并发的问题,因此Concurren
原创
2022-06-01 21:57:32 ·
467 阅读 ·
0 评论