缓存Map高并发下的访问

来源:互联网 发布:阳岛线选股公式源码 编辑:程序博客网 时间:2024/05/16 15:57

有一个场景,我们需要对map中的key所对应的value频繁的更新,高并发下,势必要对map加锁,这样锁就会成为访问这个map的瓶颈,有以下办法可以减弱这种锁的影响

1.对map进行拆分,如按照key值进行取模,将一个map拆分成多个map,这个其实也是concurrentHashMap的做法,但这种锁的粒度其实还是有点大

2.将map转化到array中去,这样的话,一个(key,value)加一个锁,这样锁的粒度就变的最小了,但是数据要是比较小的话,锁占的资源就很大了

3.第三种,就是不加锁,使用签名的方式,比如多个线程同时访问一个(key,value),更新完数据后,会将其签名也写入,等到最后读取数据的时候,会检验一下签名,

  如果签名不一致,则就表示这是脏数据。

0 0
原创粉丝点击