无锁并发框架 Disruptor
2021-10-29 11:18:48 51 举报
Disruptor是一个高性能的无锁并发框架,它能够实现低延迟、高吞吐量的数据交换。Disruptor的核心思想是使用环形缓冲区来存储数据,并通过一个生产者-消费者模型来实现数据的生产和消费。在Disruptor中,生产者负责将数据写入环形缓冲区,而消费者则负责从环形缓冲区中读取数据。由于环形缓冲区是无锁的,因此Disruptor能够在高并发场景下提供非常高的性能。此外,Disruptor还提供了丰富的API和配置选项,使得开发者能够轻松地实现复杂的数据交换逻辑。总之,Disruptor是一个非常强大的无锁并发框架,适用于各种需要高性能数据交换的场景。
作者其他创作
大纲/内容
1
RingBuffer
7
read cursor
consumer
TimeoutBlockingWaitStrategy
3
2
Executor
执行消费任务的线程池
BlockingWaitStrategy
Object[] entries
write cursor
4
WaitStrategy,如果没有event可读的等待策略
BusySpinWaitStrategy
PhasedBackOffWaitStrategy
SleepingWaitStrategy
当生产者还未生产,但消费者已经这边读时通过其进行阻塞等操作
sequence + 1
producer
5
EventProcessor
sequencer
stratege/阻塞/spin
0
YieldingWaitStrategy
6
序列号正向递增,原子操作,生产者共用一个sequence,消费者各自维护一个sequence。sequence & (array.length -1)必定为 0 到 array.length -1每生产一个,生产者游标右移一次构成环形结构每消费一个,消费者游标右移一次sequence = sequence + 1
barria
0 条评论
下一页