该组件内部是一个环形数组,受Disruptor启发而建立! Disruptor是一个优秀的无锁队列,内部使用环形数组避免java对象的频繁受垃圾回收器回收。Disruptor自己在使用时会过于复杂并且是基于回调的编程方式,不如jdk自带的BlockingQueue使用方便。 java
jdk自带的BlockingQueue的缺点就是锁带来的性能损耗! 编程
另外jdk还自带一个无锁非阻塞队列ConcurrentLinkedQueue,当它用在生产者消费者模型时,若是消费者消费较慢,生产者生产较快,ConcurrentLinkedQueue里的对象会无限增长最后内存溢出! 数组