钱塘江上潮信来,今日方知我是我
004-ConcurrentHashMap 和 Hashtable 的区别?
004-ConcurrentHashMap 和 Hashtable 的区别?

004-ConcurrentHashMap 和 Hashtable 的区别?

两者都是线程安全的哈希表,但锁机制完全不同,这直接导致了性能上的巨大差距。Hashtable是JDK1.0的老古董,所有方法都加了synchronized,相当于给整张表上了一把大锁。10个线程同时来访问,9个得排队等着,并发度就是1。

ConcurentHashMap在JDK 8里采用CAS+synchronized 配合的细粒度锁。往空桶里插数据用CAS无锁写入,有冲突时才用synchronized锁住单个桶的头节点。一张表默认16个桶,理论上16个线程可以同时写不同的桶,互不干扰。

输入,输出,复盘,重复。

📊 本站数据

文章总数

12

本文阅读

0