`
victorwmh
  • 浏览: 207873 次
  • 性别: Icon_minigender_1
  • 来自: 宇宙
社区版块
存档分类
最新评论

Java实现缓存之HashMap及ConcurrentHashMap

    博客分类:
  • java
 
阅读更多

 

最近,在一个项目中需要将大量的键值对数据缓存在内存中,以提高系统的业务处理能力。将数据缓存在内存中的方法有很多,可以使用诸如Memcached之类的分布式内存对象缓存系统,也可以通过持有对象Map类自行实现数据缓存。如何选择取决于业务需求,下面为采用map实现数据缓存前做准备时了解到的一些问题。

 

 

1、java的HashMap高并发问题。

   在高并发的情况下,HashMap可能会出现卡死的情况,原因是HashMap属于非线程安全的,具体的分析可以参看第三点。

   出现高并发操作HashMap的,最好改用ConcurrentHashMap代替,两者的性能比较可参看第二点。

 

2、HashMap和ConcurrentHashMap的并发性能。

   ConcurrentHashMap的性能比同步的HashMap快一倍左右,同步的HashMap和Hashtable的性能相当。

   测试数据参见:http://blog.csdn.net/java2000_net/article/details/3373181

 

3、不正当使用HashMap导致cpu 100%的问题追究。

   过程参见:http://code.alibabatech.com/blog/dev_related_969/hashmap-result-in-improper-use-cpu-100-of-the-problem-investigated.html

 

 

 

分享到:
评论

相关推荐

    Java利用ConcurrentHashMap实现本地缓存demo

    Java利用ConcurrentHashMap实现本地缓存demo; 基本功能有缓存有效期、缓存最大数、缓存存入记录、清理线程、过期算法删除缓存、LRU算法删除、获取缓存值等功能。 复制到本地项目的时候,记得改包路径哦~

    Java 集合方面的面试题

    以下是一些 Java 集合方面的面试题: Java 中集合框架的主要接口是什么?...如何使用 ConcurrentHashMap 类来实现高效的并发缓存? 如何使用 Spliterator 接口来实现自定义的集合遍历逻辑? 如何使用

    阿里百度美团面试题合集

    HashMap 及线程安全的 ConcurrentHashMap,以及各自优劣势 . Java 如何实现线程安全 . Synchronized 和 Lock 哪个更好? . HashMap 中的 get()方法是如何实现的? . HashMap 可以用在哪些场景? . JVM,垃圾回收...

    涵盖了90%以上的面试题

    HashMap,Hashtable和ConcurrentHashMap的区别 在ArrayList和LinkedList尾部添加元素,谁的效率更高 如果HashMap或者hashTable的key是一个自定义的类该怎么办 为什么重写equals还要重写hashCode? 介绍一下volatile jdk...

    阿里巴巴,天猫,支付宝面试题

    4. 用hashmap实现redis有什么问题(死锁,死循环,可用ConcurrentHashmap) 5. 线程的状态 5. 线程的阻塞的方式 6. sleep和wait的区别 7. hashmap的底层实现 8. 一万个人抢100个红包,如何实现(不用队列),如何...

    java面试常见基础(深层次,高级研发)

    16. Hashmap和 concurrentHashmap除了线程安全 还有什么区别,put的时候是怎么处理的。 43 17. 数据库组合索引,储存在一个叶子节点还是多个? 44 17.1. 索引的利弊与如何判定,是否需要索引: 44 17.1.1. 索引的...

    leetcode下载-JavaTopic:Java面试题总结

    leetcode下载 Spring篇: spring为什么是单实例的?有什么好处?...ConcurrentHashMap数据结构及原理,分段锁机制 NIO、BIO相关 Java多线程篇: 线程池的核心参数及用法说明? 多线程死锁如何排查(考察linux

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【基础】Java中如何实现序列化,有什么意义? 34 【WEB】session与cookie的区别与联系;session的生命周期 34 session与cookie的区别与联系 34 session的生命周期 35 【WEB】servlet 生命周期 35 【WEB】阐述JDBC...

    java8源码-baijia123:常用工具类及测试类

    JAVA并发编程实战的示例及其他 第5章:基础构建模块 对应类包com.baijia123.concurrent TestHarnes->在计时测试中使用CountDownLatch(闭锁)来启动和停止线程 Preloader->使用FutureTask来提前加载稍后需要的数据 ...

    Java-Interview:此项目为 Java 面试的汇总,多数是一些 Java 基础知识、底层原理、算法详解。也有上层应用设计,其中不乏一些大厂面试真题

    ConcurrentHashMap 的实现原理 线程池原理 深入理解线程通信 交替打印奇偶数 JVM Java 运行时内存划分 类加载机制 OOM 分析 垃圾回收 对象的创建与内存分配 你应该知道的 volatile 关键字 分布式相关 分布式限流 ...

    Java-Interview:https

    ConcurrentHashMap 的实现原理 线程池原理 深入理解线程通信 交替打印奇偶数 JVM Java 运行时内存划分 类加载机制 OOM 分析 垃圾回收 对象的创建与内存分配 你应该知道的 volatile 关键字 分布式相关 分布式限流 ...

    java-interview

    ConcurrentHashMap 的实现原理 线程池原理 深入理解线程通信 交替打印奇偶数 JVM Java 运行时内存划分 类加载机制 OOM 分析 垃圾回收 对象的创建与内存分配 你应该知道的 volatile 关键字 分布式相关 分布式限流 ...

    java核心知识点整理.pdf

    25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................

    Deta_Cache:缓存缓存服务器

    JDK的不断更新导致hashmap的索引采用2分法思想发挥到极致,所以本deta缓存的后序完善将建立,新的任务本人将基于VPCS的门将和运维更有效的相互作用进行深入研究,该项目的亮点为小到极致的跨平台高并发安全服务器。...

    JAVA核心知识点整理(有效)

    25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................

    百度地图毕业设计源码-interview-guide:面试指南

    百度地图毕业设计源码 面试内容的汇总 目录 其他人的汇总 面试经历 面试题 Java JVM IO/NIO 锁 ThreadLocal ...Java ...内存的多级缓存机 ...HashMap ...ConcurrentHashMap ...redis和zookeeper如何实现分布式锁

    TheirNotes::ledger: 《互联网后端知识大全》「前人栽树, 后人乘凉; 它山之石, 可以攻玉」java

    偏向锁:sparkles:Java IOJVM垃圾收集CMSG1ZGC元空间字节码操作JVM 调优分布式分布式算法PaxosRaftBFT分布式锁Redis 分布式锁分布式事务MySQL查询语句基本原理innodb 存储引擎:sparkles:缓存Redis底层原理开源框架...

Global site tag (gtag.js) - Google Analytics