- 博客(4)
- 收藏
- 关注
转载 缓存雪崩和缓存击穿的场景和解决方案
缓存穿透什么是缓存穿透?一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。如果key对应的value是一定不存在的,并且对该key并发请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。 如何避免?1:对查询结果为空的情况也进行缓存,缓存时间设置短一点,或者该key对应的数据insert了之后清理缓存。2:对一定不存在的key进行过滤。
2018-01-18 11:07:46 872
转载 FutureTask底层原理分析
FutureTask实现了接口Future,同Future一样,代表异步计算的结果。当然,FutureTask除了实现Future接口之外,还实现了Runnable接口,所以,FutureTask既可以由Executor来调度执行,也可以由调度线程调用FutureTask.run()直接执行。FutureTask状态根据FutureTask的run方法是否被执行以及是否被执行完成,FutureTa
2018-01-17 14:04:06 488
转载 Java线程的5种状态及切换(透彻讲解)
Java中的线程的生命周期大体可分为5种状态。1. 新建(NEW):新创建了一个线程对象。2. 可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。3. 运行(RUNNING):可运行状态(runnable)的线程获得了cpu 时间片(t
2018-01-16 16:31:42 230
转载 synchronized与lock之间的性能比较
1.关于两者的实现的比较A).一般认为synchronized关键字的实现是源自于像信号量之类的线程同步机制,涉及到线程运行状态的切换,在高并发状态下,CPU消耗过多的时间在线程的调度上,从而造成了性能的极大浪费。然而真的如此么? 线程的状态主要有一下五种,分别是新建状态,就绪状态,运行状态,阻塞状态,消亡状态等5种状态B).lock实现原理则是依赖于硬件,现代处理器都
2018-01-12 15:29:44 5223 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人