Guava
taoy86
这个作者很懒,什么都没留下…
展开
-
Guava系列之Cache
List、Set、Map是我们开发过程中使用频次最高的三种集合类型Lists主要方法有各种创建list的方法 asList()将数据组转成list newArrayList() newArrayListWithCapacity(10) 指定容量的创建 newArrayListWithExpectedSize(20) 初始化指定容量 newCopyOnWriteArrayList() newLinkedList() partition(List<T> lis.转载 2020-09-30 20:08:53 · 2248 阅读 · 0 评论 -
Guava refreshAfterWrite只阻塞回源线程,其他线程返回旧值
上一篇文章"Guava Cache特性:对于同一个key,只让一个请求回源load数据,其他线程阻塞等待结果"提到:如果缓存过期,恰好有多个线程读取同一个key的值,那么guava只允许一个线程去加载数据,其余线程阻塞。这虽然可以防止大量请求穿透缓存,但是效率低下。使用refreshAfterWrite可以做到:只阻塞加载数据的线程,其余线程返回旧数据。public class GuavaCache4TestRefresh { private static CountDownLatch latch转载 2020-09-30 19:24:47 · 691 阅读 · 0 评论 -
Guava限流RateLimiter
在互联网高并发场景下,限流是用来保证系统稳定性的一种手段,当系统遭遇瞬时流量激增时,可能会由于系统资源耗尽导致宕机。而限流可以把一小部分流量拒绝掉,保证大部分流量可以正常访问,从而保证系统只接收承受范围以内的请求,多余的请求给拒绝掉。举个例子,节假日很多人都会出去玩,我们知道每个地铁站单位时间内可承受的运输能力是有限的,也就是每趟车承载的人数是有上限的,当达到这个上限以后,上不去的人就只能排队等待,当排队等待的人已经到地铁站口了,此时保安就会限制再进入地铁站了。此时的保安就是起到限流的作用常用的限流转载 2020-09-30 15:48:23 · 347 阅读 · 0 评论 -
[Google Guava] 12-数学运算
原文链接译文链接译者:沈义扬为什么使用Guava MathGuava Math针对各种不常见的溢出情况都有充分的测试;对溢出语义,Guava文档也有相应的说明;如果运算的溢出检查不能通过,将导致快速失败; Guava Math的性能经过了精心的设计和调优;虽然性能不可避免地依据具体硬件细节而有所差异,但Guava Math的速度通常可以与Apache Commons的MathUtils相比,在某些场景下甚至还有显著提升; Guava Math在设计上考虑了可读性和正确的编程习惯;IntMat..转载 2020-09-30 12:14:33 · 253 阅读 · 0 评论 -
Guava系列之不可变集合
Guava的不可变集合(Immutable Collections)什么是不可变对象?对象创建后,所有的状态和属性在整个生命周期内不能被修改;同理,不可变集合就是集合创建后,不能对集合中的对象进行修改为什么需要不可变对象?或者说不可变对象有什么好处?好处1:让并发处理变得更简单了,对象是线程安全的好处2:消除了副作用下面我们看一个例子public class DemoTest { public static void main(String[] args){ ...转载 2020-09-30 15:15:15 · 500 阅读 · 0 评论 -
Google的CacheBuilder缓存
1:refreshAfterWriteGuava Cache特性:对于同一个key,只让一个请求回源load数据,其他线程阻塞等待结果这种情况:如果缓存过期,恰好有多个线程读取同一个key的值,那么guava只允许一个线程去加载数据,其余线程阻塞。这虽然可以防止大量请求穿透缓存,但是效率低下。使用refreshAfterWrite可以做到:只阻塞加载数据的线程,其余线程返回旧数据。2:之前常用ConcurrentMap来做缓存,那它们有什么区别呢?Guava Cache与Concur.转载 2020-09-10 21:29:34 · 840 阅读 · 1 评论 -
guava multiMap 与 ListMultiMap
参考链接:https://blog.csdn.net/qq_37487520/article/details/78856868使用场景及示例//传统的场景: Map<String,List<MyClass>> map = new HashMap<String,List<MyClass>>(); #缺点:向map里面添加元素不太方便...转载 2019-03-15 16:30:04 · 400 阅读 · 0 评论