該組件內部是一個環形數組,受Disruptor啓發而建立! Disruptor是一個優秀的無鎖隊列,內部使用環形數組避免java對象的頻繁受垃圾回收器回收。Disruptor自己在使用時會過於複雜並且是基於回調的編程方式,不如jdk自帶的BlockingQueue使用方便。 java
jdk自帶的BlockingQueue的缺點就是鎖帶來的性能損耗! 編程
另外jdk還自帶一個無鎖非阻塞隊列ConcurrentLinkedQueue,當它用在生產者消費者模型時,若是消費者消費較慢,生產者生產較快,ConcurrentLinkedQueue裏的對象會無限增長最後內存溢出! 數組