java中LongAdder和AtomicLong有什么区别?

2021-03-07 23:10发布

11条回答
霸王龙的龙
2021-03-08 09:59

Hystrix需要根据过去一段时间内失败的请求次数来判断是否打开熔断开关,所以它会维护一个时间窗口,并不断向该窗口中累加失败请求次数,在多线程环境下一般会使用AtomicLong,但是Hystrix中使用的是LongAdder。查了一下,发现在Hystrix,Guava,JDK8中都有这个类,应该是Java8中才加到标准库中,其他库要兼容老版本只能自己复制一份了。Hystrix和Java8中的LongAdder具体实现有细微差别,不过整体思路是一样的,下面的分析都是以jdk为准的。

一周热门 更多>