无锁环形缓冲RingBuffer的原理及Java实现
在多线程环境下为了保证线程安全,往往需要加锁,例如读写锁可以保证读写互斥,读读不互斥。有没有一种数据结构能够实现无锁的线程安全呢?答案就是使用RingBuffer循环队列。在Disruptor项目中就运用到了RingBuffer。
RingBuffer的基本原理如下:
在RingBuffer中设置了两个指针,head和tail。head指向下一次读的位置,tail指向的是下一次写的位置。R...
原创
2018-08-29 23:50:57 ·
25723 阅读 ·
9 评论