disruptor是一个内存队列,目的是为了线程间队列通信使用的,不同于kafka等分布式队列,区别于ArrayBlockQueue等队列的性能优势在于以下几点:
a.环形队列(长度是2的n次幂)
b.对象预创建,对象复用
c.去除了内存伪共享
d.使用cas代替锁的操作
备注: 内存伪共享是指cpu的L1内存可以存放8个long类型的变量,比如var10-var18,如果cpu1修改了var10的变量,那么cpu2中L1缓存行里面这些变量就要作废,要重新从主内存读取,反之如果cpu2修改了变量var15,那么cpu1中L1缓存行里面的这些变量也都要作废,也要重新从主内存读取,显而易见,这会严重影响性能
版权声明:本文为lixia0417mul2原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。